其中elif和else不是必须的,如果只需判断一次,那么if...fi即可。值得注意的是if后面中括号[]中的语句[的后面和]的前面必须要有空格。
下面通过判断大小和文件是否存在看一下判断语句的用法:
-gt 大于 (greater than);
-lt 小于(less than);
-eq 等于(equal);
-ne 不等于(not equal);
-ge 大于等于(greater equal)
-le 小于等于(less equal)。
cat test.sh #!/bin/shfile=$1file_size=`du $file | awk '{print $2}'`if [ $file_size -ge 10485760 ]thencp -p $file $file-bakfichmod +x test.sh ./test.sh 1.txt逐行解释1.查看脚本文件test.sh2.定义脚本默认用sh执行3.将文件路径赋予file变量。$1表示位置变量即下面的1.txt4.计算文件大小并赋予file_size变量5.如果文件大小大于等于10m.10485760为10m,-ge为大于等于。6.if语法关键字7.将文件重命名备份8.if语法关键字9.空行10.赋予脚本test.sh可执行权限11.执行脚本,输入位置变量1.txt.使用-f,-d,-e分别判断:普通文件是否存在,目录是否存在,某东西是否存在,不限定为文件使用-s判断文件大小是否为0,以下代码表示如果$filename所表示的文件大小为0,则执行echo语句,并退出脚本。
128为常用退出码,代表信号产生。
其他常见退出码,可以参考
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)