linux shell 指令 诸如-d, -f, -e之类的判断表达式:
文件比较运算符
-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符
num1-eq num2 等于 [ 3 -eq $mynum ]
num1-ne num2 不等于 [ 3 -ne $mynum ]
num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]
num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]
参考:http://blog.csdn.net/sxzlc/article/details/7542603
linux shellcase语句 :
case语句适用于需要进行多重分支的应用情况。
case分支语句的格式如下:
case $变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认执行的命令序列 ;;
esac
case语句结构特点如下:
case行尾必须为单词“in”,每一个模式必须以右括号“)”结束。
双分号“;;”表示命令序列结束。
匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。
最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后
的命令序列。
例如:
1 case "$1" in //判断$1 2 *.sh) //如果是.sh文件,那么执行这一个 3 # Source shell script for speed. 4 ( 5 trap - INT QUIT TSTP 6 scriptname=$1 7 shift 8 . $scriptname 9 ) 10 ;; 11 *) //如果不是.sh那么执行这个默认的 12 "[email protected]" 13 ;; 14 esac
参考来源:http://blog.csdn.net/dreamtdp/article/details/8048720
linux shell 参数:
$1 表示第一个参数。
$2 表示第二个参数。
$3 表示第三个参数。
[email protected] 表示所有的参数,这个是数组的方式表示所有的参数。
$# 表示参数的个数。
$* 也可以表示所有的参数。