条件测试&&自定义退出状态码小练习

练习

写一个脚本,可接受一个文件路径作为参数,

如果参数个数小于1,则提示用户"至少给出一个参数",并立即退出

如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数

1
2
3
4
5
6
7
# cat -n not.sh 
     #!/bin/bash
     test $# -lt 1 && echo "At least not now" && exit 1
     3 lines=$(grep -c '^[[:space:]]$' $1)
     echo "The lines of blank: $lines "
     exit 2
# chmod +x not.sh


如果参数个数小于1,则提示用户"至少给出一个参数",并立即退出

1
2
3
4
# ./not.sh 
At least not now
# echo $?
1


如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数

1
2
3
4
# ./not.sh /etc/rc.d/rc.sysinit 
The lines of blank: 3 
# echo $?
2


如果hostname存在,或等于Localhost.domain,重命名为www.magedu.com

1
[ -z "$(hostname)" ] || [ "$(hostname)" == "localhost.domain" ] && hostname www.magedu.com

#字符测试中,只有PATTERN才不能用引号,且必须在` ` 中,其他必须用"",用在任意括号中

1
[ -z "$(hostname)" -o "$(hostname)" == "localhost.domain" ] && hostname www.magedu.com


/bin/cat 存在且可执行,运行cat fstab

1
# [ -e /bin/cat ] && [ -x /bin/cat ] && cat /etc/fstab

#文件和数值测试中不能用引号

1
# [ -e /bin/cat -a -x /bin/cat ] && cat /etc/fstab









本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1953090,如需转载请自行联系原作者
上一篇:从源码的角度再看 React JS 中的 setState


下一篇:SOHO办公遭IBM叫停,为什么说它是创业大忌?