例如,有如下的shell/ target=_blank class=infotextkey>shell脚本。
 
位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字 
-ne    不等于
----------------------- 
shell 编程中使用到得if语句内判断参数
–b 当file存在并且是块文件时返回真
-c 当file存在并且是字符文件时返回真
-d 当pathname存在并且是一个目录时返回真
-e 当pathname指定的文件或目录存在时返回真
-f 当file存在并且是正规文件时返回真
-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p 当file存在并且是命令管道时返回为真
-r 当由pathname指定的文件或目录存在并且可读时返回为真
-s 当file存在文件大小大于0时返回真
-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
UNIX Shell 里面比较字符写法: 
 
更为详细的说明: 
 
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法) 
 
算术比较运算符 
 
例子,判断shell参数个数: 
 
#!/bin/bash 
# This script prints a message about your weight if you give it your 
# weight in kilos and hight in centimeters. 
if [ ! $# == 2 ]; then 
echo "Usage: $0 weight_in_kilos length_in_centimeters" 
exit 
fi
weight="$1" 
height="$2"
idealweight=$[$height - 110]
if [ $weight -le $idealweight ] ; then 
echo "You should eat a bit more fat." 
else 
echo "You should eat a bit more fruit." 
fi
# weight.sh 70 150 
You should eat a bit more fruit. 
# weight.sh 70 150 33
调用:
 
位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字, 
第一个参数代表$1,第二个参数代表$2,以此类推,参数数量的总数存在$#中,上面的例子显示了怎么改变脚本,如果参数少于或者多余2个来打印出一条消息。 
执行,并查看情况。 
 
其中-x用来检查脚本的执行情况。