标签:不为 -o 不同 $@ 相同 竖线 字符 (()) shell语法
特殊变量
| 变量 | 说明 | 
|---|---|
| $0 | 获取当前执行的 Shell 脚本的文件名,如果执行脚本包含了路径,则包含脚本路径 | 
| $n | 获取当前执行的 Shell 脚本的第 n 个参数值,即 n=1..9,n 为 0 时,同上 | 
| $# | 获取当前执行的 Shell 脚本后面接的参数的总个数 | 
| $* | 获取当前 Shell 脚本所有传参的参数,加上双引号,"$*" 表示将所有的参数视为单个字符串,相当于 "$1 $2 $3" | 
| $@ | 获取当前 Shell 脚本所有传参的参数,不加双引号和 $* 相同。加上双引号,"$@" 表示将所有的参数视为不同的独立字符串,相当于 "$1" "$2" "$3" | 
| $? | 获取上一个指令的执行状态的返回值(0 为成功,非 0 则失败) | 
文件测试表达式| 常用文件测试操作符 | 说明 | 
|---|---|
| -d 文件 | 文件存在且为目录则为真,即测试表达式成立 | 
| -f 文件 | 文件存在且为普通文件则为真,即测试表达式成立 | 
| -e 文件 | 文件存在则则为真,即测试表达式成立。不区分文件或目录 | 
| -r 文件 | 文件存在且可读则为真,即测试表达式成立 | 
| -s 文件 | 文件存在且大小不为 0 则为真,即测试表达式成立 | 
| -w 文件 | 文件存在且可写则为真,即测试表达式成立 | 
| -x 文件 | 文件存在且可执行则为真,即测试表达式成立 | 
| -L 文件 | 文件存在且为链接则为真,即测试表达式成立 | 
| f1 -nt f2 | 文件 f1 比文件 f2 新则为真,即测试表达式成立。根据文件的修改时间来计算 | 
| f1 -ot f2 | 文件 f1 比文件 f2 旧则为真,即测试表达式成立。根据文件的修改时间来计算 | 
字符串测试表达式| 常用字符串测试操作符 | 说明 | 
|---|---|
| -n "字符串" | 若字符串的长度不为 0 ,则为真,即测试表达式成立,n 可以理解为 no zero | 
| -z "字符串" | 若字符串的长度为 0 ,则为真,即测试表达式成立,z 可以理解为 no zero | 
| "串1" = "串2" | 若字符串 1 等于字符串 2,则为真,即测试表达式成立,可使用 "=="代替 "=" | 
| "串1" != "串2" | 若字符串 1 不等于字符串 2,则为真,即测试表达式成立,但不能使用 "!=="代替 "!=" | 
整数二元比较操作符| 在 [] 以及 test 中使用的比较符号 | 在 (()) 和 [[]] 中使用的比较符号 | 说明 | 
|---|---|---|
| -eq | == 或 = | 相等 | 
| -ne | != | 不相等 | 
| -gt | > | 大于 | 
| -ge | >= | 大于相等 | 
| -lt | < | 小于 | 
| -le | <= | 小于相等 | 
逻辑操作符| 在 [] 以及 test 中使用的比较符号 | 在 (()) 和 [[]] 中使用的比较符号 | 说明 | 
|---|---|---|
| -a | && | and,与,两端都为真,则结果为真 | 
| -o | 双竖线 | or,或,两端有一个为真,则结果为真 | 
| ! | ! | not,非,两端相反,则结果为真 | 
标签:不为 -o 不同 $@ 相同 竖线 字符 (()) shell语法
原文地址:http://blog.51cto.com/12384628/2294062