shell编程的判断语句与c编程的判断语句不同,if判断的是 命令的返回值,如果命令返回为0表示执行成功,则执行then后面的语句,如果返回的为非0值,则命令执行不成功,执行else后面的语句。如
if test -f /etc/passwd ; then
echo "this file is existes"
else
echo "this file isn't existes"
在shell中的判断主要有三类 : 数值比较,字符串比较,文件比较
1:数值比较的操作有:
test命令和 " [ " 符号命令,这两个命令的作用一样。没有区别。
(( ))双圆括号命令来进行高级的数学公式运算
[[ ]]双方括号命令不仅可以高级运算,还可以进行模式匹配如:if [[ $USER= "r*" ]] ;then
2: 字符串的比较操作命令为
test命令
3:文件的比较命令为
test命令
补充: shell中只能进行整数的运算,如果要进行浮点数的运算,需要使用到bc命令.使用规则如下
var1 = `echo "scale = 4 ; 4/5 " | bc ` option scale默认为0,表示小数位为0,如果为4,则表示保留4为小数
var2 = `bc << EOF
scale = 4
a=4/9
b=7/34
a+b ` 这是另一种用法,将所有的表达式以重定向管道传递给bc命令,以EOF 开始于结尾。