变量:
系统常变量:
UID,PWD,所有的系统环境变量都可以认为是shell中的常量
$#:位置参数的个数
$*: 所有位置参数的内容
$? : 命令执行后返回的状态
$$ :当前进程的进程号
$0-$9:第几个位置参数
shift: 可以左移一位$*
/a : bell
/b : 退回一格
/r : 回车符号
/n: 新建一行
/t : 横向制表符
/v: 纵向制表符
//: 转义反斜杠
/': 转义单引号
要知道效果如何可用: $echo -e "/a"对应测试
用户定义的变量如:
testFlag=0
调用的时候调用$testFlag就可以了。
注意的是:
“”, ‘’, ``不是的意义是不一样的。
"": 表示的准许中间有变量的替换
'':表示单独的一串字符,不存在变量的替换
``:表示变量替换并执行里面的内容并输出
比较:
字符串判断:
$a 和 string 相等时为真 [ “$a” == “string” ]
$a 和 string 不相等时为真 [ “$a” != “string” ]
$a 是空值(零子符)时为真 [ -z “$a” ]
$a 不是空值时为真 [ -n “$a” ]
数字测试
$x 等于 1 时为真 [ $x -eq 1 ]
$x 不等于 1 时为真 [ $x -ne 1 ]
$x 小于 1 时为真 [ $x -lt 1 ]
$x 大于 1 时为真 [ $x -gt 1 ]
$x 小于或等于 1 时为真 [ $x -le 1 ]
$x 大于或者等于 1 时为真 [ $x -ge 1 ]
文件测试
$file 是目录时为真 [ -d $file ]
$file 是文件时为真[ -f $file ]
$file 是大于 0 字节的文件时为真 [ -s $file ]
$file 是可读文件时为真 [ -r $file ]
$file 是可写文件时为真 [ -w $file ]
$file 是可执行文件时为真 [ -x $file ]
逻辑表达式
$a 和$b 做与运算 [ $a -a $b ]
$a 和$b 做或运算 [ $a -o $b ]
对$a 做非运算 [ ! $a ]