-
test
命令- test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。在shell中,如果命令返回0,则表示成功;任何非0的返回值,都表示失败;同时shell提供了特殊参赛$?来获取上个命令的返回值。
- 文件类型判断
-e 文件名 如果文件存在则为真 -r 文件名 如果文件存在且可读则为真 -w 文件名 如果文件存在且可写则为真 -x 文件名 如果文件存在且可执行则为真 -s 文件名 如果文件存在且至少有一个字符则为真 -d 文件名 如果文件存在且为目录则为真 -f 文件名 如果文件存在且为普通文件则为真 -c 文件名 如果文件存在且为字符型特殊文件则为真 -b 文件名 如果文件存在且为块特殊文件则为真
- 文件权限判断
-r 文件名 如果具有“可读”权限则为真 -w 文件名 如果具有“可写”权限则为真 -x 文件名 如果具有“可执行”权限则为真 -u 文件名 如果具有“SUID”属性则为真 -g 文件名 如果具有“SGID”属性则为真 -k 文件名 如果具有“Sticky bit”属性则为真 -s 文件名 如果文件存在且为“非空文件”则为真
- 文件比较判断
FILE1 -ef FILE2 两个文件指向同一个inode,既是硬链接,则为真 FILE1 -nt FILE2 FILE1比FILE2更新,既FILE1修改时间晚于FILE2,则为真 FILE1 -ot FILE2 FILE1比FILE2更旧,既FILE1修改时间早于FILE2,则为真
- 整数判断
-eq 等于则为真 -ne 不等于则为真 -gt 大于则为真 -ge 大于等于则为真 -lt 小于则为真 -le 小于等于则为真
- 字符串判断
= 等于则为真 != 不相等则为真 -z 字符串 字符串的长度为零则为真 -n 字符串 字符串的长度不为零则为真
- 多条件判断
条件1 -a 条件2 如果两个条件都成立则为真 条件1 -o 条件2 任何一个条件成立则为真 ! 条件1 条件1的反向状态
-
[]
判断符号 中括号两端必须有空格分割,变量用单引号或双引号括起来。在bash中“==”和“=”作用是一样的#!/bin/bash a=5 b=6 result=$[a+b] # 注意等号两边不能有空格 echo "result 为: $result"
- 默认变量
$#
一共有几个参数$@
所有参数的值$*
所有参数的值$n
第n个参数是什么shift
造成参数号码的偏移bash ./sh05.sh one two three four five six
#!/bin/bash echo "Total parameter number is ==> $#" echo "Your whole parameter is ==> '$@'" shift #1个变量的shift echo "1个变量移位" echo "Total parameter number is ==> $#" echo "Your whole parameter is ==> '$@'" shift 3 #3个变量的shift echo "3个变量移位" echo "Total parameter number is ==> $#" echo "Your whole parameter is ==> '$@'" ** 输出结果 ** Total parameter number is ==> 6 Your whole parameter is ==> 'one two three four five six' 1个变量移位 Total parameter number is ==> 5 Your whole parameter is ==> 'two three four five six' 3个变量移位 Total parameter number is ==> 2 Your whole parameter is ==> 'five six'
Shell Script (二)善用判断式
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...