Chinaunix首页 | 论坛 | 博客
  • 博客访问: 620367
  • 博文数量: 168
  • 博客积分: 1053
  • 博客等级: 少尉
  • 技术积分: 1187
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-30 17:20
个人简介

公众号【嵌入式er笔记】持续记录和分享C/C++、Linux、ARM、Android、IoT等技术相关知识,以及职场、生活经验和感悟。

文章分类

全部博文(168)

分类:

2012-12-12 14:43:13

shell 特殊符号及条件判断


一些特殊的符号
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的进程ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数
$- 显示shell使用的当前选项,与set命令功能相同
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
$0 脚本名称
$1..$9 第N个参数
$(uname -r)=`uname -r`
echo $((1+2))显示3,$((算术运算))

一些判断总结
-b file    若文件存在且是一个块特殊文件,则为真
-c file             若文件存在且是一个字符特殊文件,则为真
-d file                若文件存在且是一个目录,则为真
-e file                若文件存在,则为真
-f file                 若文件存在且是一个规则文件,则为真
-g file                若文件存在且设置了SGID位的值,则为真
-h file                若文件存在且为一个符合链接,则为真
-k file                   若文件存在且设置了"sticky"位的值
-p file                   若文件存在且为一已命名管道,则为真
-r file                    若文件存在且可读,则为真
-s file                   若文件存在且其大小大于零,则为真
-u file                   若文件存在且设置了SUID位,则为真
-w file               若文件存在且可写,则为真
-x file                   若文件存在且可执行,则为真
-o file                   若文件存在且被有效用户ID所拥有,则为真

-z string                 若string长度为0,则为真
-n string                             若string长度不为0,则为真
string1 = string2      若两个字符串相等,则为真
string1 != string2      若两个字符串不相等,则为真

int1 -eq int2       若int1等于int2,则为真
int1 -ne int2                   若int1不等于int2,则为真
int1 -lt int2                  若int1小于int2,则为真
int1 -le int2                    若int1小于等于int2,则为真
int1 -gt int2                    若int1大于int2,则为真
int1 -ge int2         若int1大于等于int2,则为真

!expr           若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2        若expr1和expr2都为真则整式为真
expr1 -o expr2        若expr1和expr2有一个为真则整式为真
 
 
另外可以使用:test命令的判断功能;
例如:
test -f $filepath && && filetype ="regulare file":用来测试文件是否存在并且文件类型是否是regulare file.
阅读(1186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~