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 ]
举例:
if [ $# != ]; then
echo arguement error ...
exit
fi if [ ! -e "$1" ]; then
echo no such device $
exit
fi
这里包含if判断的东西,if 里面的判断[] 里面的条件必须要有空格
例如: if [ -e "/dev/sdb" ];then
...
fi
[ 后面有个空格, ] 前面也有一个空格。
linux shellcase语句 :
case语句适用于需要进行多重分支的应用情况。
case分支语句的格式如下:
case $变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认执行的命令序列 ;;
esac
case语句结构特点如下:
case行尾必须为单词“in”,每一个模式必须以右括号“)”结束。
双分号“;;”表示命令序列结束。
匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。
最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后
的命令序列。
例如:
case "$1" in //判断$1
*.sh) //如果是.sh文件,那么执行这一个
# Source shell script for speed.
(
trap - INT QUIT TSTP
scriptname=$
shift
. $scriptname
)
;;
*) //如果不是.sh那么执行这个默认的
"$@"
;;
esac
参考来源:http://blog.csdn.net/dreamtdp/article/details/8048720
linux shell 参数:
$1 表示第一个参数。
$2 表示第二个参数。
$3 表示第三个参数。
$@ 表示所有的参数,这个是数组的方式表示所有的参数。
$# 表示参数的个数。
$* 也可以表示所有的参数。
linuxshell if 判断语句:
linux shell while 循环:
- while expression
- do
- command
- command
- ```
- done
参考:http://blog.chinaunix.net/uid-25880122-id-2901409.html