鄠邑建站 网站建设分析无线传感网络的体系架构
运算符语法
 $((运算式))
 $[运算式] 推荐使用
 expr m + n expression表达式
 expr表达式注意算法符之间要有空格如果希望将expr的结果赋值给变量使用``
 expr *,,% (乘,除,取余)
计算(2+3)x4
 计算两个数之和
vi  opr.sh
#!/bin/bash
#计算(2+3)x4
#$((运算式)) 
res1=$(((2+3)*4))
echo  "res1结果=$res1"
#$[运算式]  `推荐使用`
res2=$[(2+3)*4]
echo "res2 结果=$res2"
#expression表达式
res3=` expr 2 + 3` 
echo "res3  结果=$res3"
res4=` expr $res3 \* 4`echo "res4  结果=$res4"
#计算两个数之和
res5=$[$1+$2]
echo "res5 结果=$res5" 
条件判断基本语法
 [ condition ]注意condition前后要有空格
 非空返回true,可使用$?验证(0:true >1:false)
 条件判断
 = 字符串判断 或者 两个正数比较
 -lt 小于 -le 小于等于 -eq 等于 -gt 大于 -ge 大于等于 -ne 不等于
 -r 读权限 -w 写权限 -x 执行权限
 -f 文件存在并是一个常规的文件
 -e 文件存在
 -d 是一个目录
[ 有内容 ] 返回true
 [ ] 返回false
流程控制
 基本语法
 if [ 条件判断式 ];
 then
 代码
 fi
 多分支
 if [ 条件判断式 ];
 then
 代码
 elif [ 条件判断式 ] && [ 条件判断式 ];
 then
 代码
 else
 代码
 fi
vi condition.sh
#!/bin/bash
#输入的第一个参数和第二个参数是否相同
if [ $1 = $2 ];thenecho "$1 equal $2"
elseecho "$1 not equal $2" 
fi
#输入的第三个参数比较大小
if [ $3 -ge 10 ];thenecho "$3 大于等于10"
elif [ $3 -gt  5 ] && [ $3 -lt 10 ];thenecho "$3 大于5且小于10"
elif [ $3 -le 5 ];thenecho "$3小于等于5"
elseecho "$3小于5"
fiFILE_PATH="/root/test_shell_code/var.sh"
if [ -f $FILE_PATH ];
thenecho "$FILE_PATH 文件存在"
else echo  "$FILE_PATH 文件不存在"
fiif [ -x $FILE_PATH ];
thenecho "有$FILE_PATH的执行权限"
else echo "没有$FILE_PATH的执行权限"
fi
FILE_PATH="/root/test_shell_code1"if [ -d $FILE_PATH ];
thenecho "$FILE_PATH 目录存在"
elseecho  "$FILE_PATH 目录不存在"
fiif [ felicia ];thenecho "hi felicia"
fiif [ ];thenecho "为假"
fi 
case语句
 级别语法
 case $变量名 in “1”)
 代码
 ;;
 “2”)
 代码
 ;;
 “3”)
 代码
 ;;
 *)
 代码
 ;;
 esac
vi test_case.sh
#!/bin/bash
case $1 in "1")echo "星期一"
;;"2")echo "星期二"
;;"3")echo "星期三"
;;"4")echo "星期四"
;;"5")echo "星期五"
;;"6")echo "星期六"
;;"7")echo "星期天"
;;
*)echo "未知"
;;
esac 
for循环
 基本语法
 for 变量 in 值1,值2,值3
 do
 代码
 done
 for ((初始值;循环控制条件;变量变化))
 do
 代码
 done
 打印输入的参数 可以看出 ∗ 和 *和 ∗和@的区别
vi test_for.sh
#!/bin/bash
for i in "$*"
doecho "num is $i"
donefor i in "$@"
doecho "num is $i"
done 

vi test_for2.sh
#!/bin/bash
#从1加到N的值输出显示
SUM=0
for((i=1;i<=$1;i++))
doSUM=$[$SUM+$i]
done
echo "总和=$SUM"
 
while 循环
 基本语法
 while [ 条件判断 ]
 do
 代码
 done
实例:输入一个数,统计从1+…+n的值是多少
vi test_while.sh
#!/bin/bash
SUM=0i=0
while [  $i -le $1 ]
doSUM=$[$SUM+$i]i=$[$i+1]
done
echo "总和=$SUM" 

