命令格式 expr expression 叙述 expression是由字串以及运算子所组成,每个字串或是运算子之间必须用空白隔开。下表是运算子的种类及功能,而优先顺序则以先後次序排列,我们可以利用小括号来改变运算的优先次序。其运算结果则输出至标准输出上。 : 字串比较。比较的方式是以两字串的第一个字母开始,而以第二个字串的字母结束。如果相同时,则输出第二个字串的字母个数,如果不同时则传回0 。 * 乘法 / 除法 % 取馀数 + 加法 - 减法 < 小於 <= 小於等於 = 等於 != 不等於 >= 大於等於 > 大於 & AND运算 | OR运算 当expression中含有"*", "(", ")" 等符号时,必须在其前面加上"/" ,以免被Shell 解释成其它意义。 expr 2 /* /( 3 + 4 /) 其输出为14 附录B test命令 命令格式 test expression 叙述 expression 中包含一个以上的判断准则以作为test评诂的标准。两准则间用"-a"代表逻辑AND 运算,"-o"代表逻辑OR运算,而在准则前放置一"!" 代表NOT 运算。如果没有括号,则优先权则为"!" > "-a" > "-o" 。和expr命令相同,相使用左右括号时,必须在其前面加上"/" 。以下是有关准则的叙述(合叙述时传回真,否则传回伪): string string不为空白字串 -n string string的长度大於0 -z string string的长度等於0 string1=string2 string1等於string2 string1!=string2 string1不等於string2 int1 -gt int2 int1大於int2 int1 -ge int2 int1大於等於int2 int1 -eq int2 int1等於int2 int1 -ne int2 int1不等於int2 int1 -le int2 int1小於等於int2 int1 -lt int2 int1小於int2 -r filename 档案可读取 -w filename 档案可写入 -x filename 档案可执行 -f filename 档案为一般档 -d filename 档案为目录 -s filename 档案为非空的一般档 test -r "$filename" -a -s "$filename"