bash脚本编程之四――整数测试及特殊变量
bash中常用的条件测试有三种: 测试方法: [ expression ] 命令测试法 [[ expression]] 关键字测试法 test expression 整数测试: -gt -le -ne -eq -ge -lt 例: INT1=63 INT2=77 [ $INT1 -eq $INT2 ] [[ $INT1 -eq $NET2 ]] test $INT1 -eq $NET2 文件测试: -e FILE:?y?文件是否存在 -f FILE:测试文件是否为普通文件 -d FILE:测试指定路径是否为目录 -r FILE:测试当前用户对指定文件是否有读取的权限 -w FILE:测试当前用户对指定文件是否有写入的权限 -x FILE:测试当前用户对指定文件是否有执行的权限 例:写一个脚本,给定一个文件,如果是普通文件,就显示之;如果是一个目录,亦显示之;否则,显示此为无法识别文件。 #!/bin/bash # file=/etc/passwd 定义变量file if [ ! -e $file ];then 如果文件不存在 echo "no such file." 就显示文件不存在 exit 2 结束脚本 fi if [ -f $file ];then 如果文件存在就判断是不是普通文件 echo "common file." 是就显示文件为普通文件 elif [ -d $file ];then 否则就测试是否为目录 echo "Directory." 是就显示是目录 else 否则 echo "unknow" 就显示文法识别 fi 定义脚本退出状态码 提前结束脚本:exit exit # 如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码既为脚本的退出状态码: 测试脚本是否有语法错误: bash -n +脚本名 逐条显示执行:bash -x +脚本名 bash变量的类型: 本地变量(局部变量) 环境变量 位置变量:$1,$2,.... 引用位置参数 shift:轮替 ./filetest,sh /etc/fatab /etc/inittab $1:/etc/fatab $2:/etc/inittab 例:能接受一个参数(文件路径),判定:此参数如果是一个存在的文件,就显示“OK”,否则就显示“NO such file.” #!/bin/bash # if [ -e $1 ]; then echo "OK." else echo "NO such file." fi 例:写一个脚本,给脚本传递两个参数,显示两个参数的和,成积。 #!/bin/bash if [ $# -lt 2 ];then echo "Usage:file3.sh ARG1 ARG2" fi echo "the sum is $[$1+$2]." echo "the product is $[$1*$2]" 特殊变量 $?:上一条命令的退出状态码 $#:参数的个数 $*:参数列表 $@:参数列表 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |