1.变量赋值:
read -p “请你输入账号:” Id
echo “你输入的变量值为:$ID”
2.变量替换
${#变量} 获取变量的长度
${变量#匹配规则} 从头开始匹配,最短删除
${变量##匹配规则} 从头开始匹配,最长删除
${变量%匹配规则} 从尾开始匹配,最短删除
${变量%%匹配规则} 从尾开始匹配,最长删除
${变量/旧的字符串/新的字符串} 替换变量中的旧的字符串为新的字符串,只替换第一个
${变量//旧的字符串/新的字符串} 替换变量中的旧的字符串为新的字符串,替换所有
${变量:匹配规则:匹配规则} 索引及切片
3.变量运算
num1 + num2 加
num1 – num2 减
num1 * num2 乘
num1 / num2 除
num1 % num2 求余
awk ‘BEGIN{print 10 + 5}’
4.流程控制
单分支结构
if [ $? -eq 0 ];then
echo “xxx”
fi
双分支结构
if [ $? -eq 0 ];then
echo “xxx”
else
echo “xxx”
fi
多分支结构
if [ $i -lt 80 ];then
echo “xxx”
elif [ $i -lt 70 ];then
echo “xxx”
elif [ $i -lt 60 ];then
echo “xxx”
elif [ $i -lt 50 ];then
echo “xxx”
else
echo “xxx”
fi
5.流程控制语句之文件比较
-e 如果文件或者目录存在则为真 [ -e file/dir ] !取反
-f 如果文件存在则为真
-s 如果文件存在且至少有一个字符则为真 判断一个文件是否是空文件
-d 如果目录存在则为真
-r 读的权限
-w 写的权限
-x 执行的权限
[ -e /etc/hosts ] && echo “为真” || echo “为假”
[ -e /etc ] && echo “为真” || echo “为假”
6.流程控制语句之整数比较
-eq 等于条件则为真 [ 1 -eq 1 ]
-ne 不等于 [ 1 -ne 2 ]
-gt 大于 [ 2 -gt 1 ]
-ge 大于等于 [ 2 -ge 2 ]
-lt 小于 [ 1 -lt 2 ]
-le 小于等于 [ 1 -le 1 ]
7.流程控制语句之字符比较
== 等于则条件为真 [ “a” == “a” ]
!= 不等于则条件为真 [ “a” != “b” ]
-z 字符串的长度为零则为真
-n 字符串的长度不为零则为真
8.流程控制语句之多条件比较
-a 并且 当多个条件存在时,必须是条件成立才为真,如果有一个条件不为真时,则条件为假
-o 或者 当多个条件存在时,必须是所有条件不为真时则为假,如果有一个条件为真时,则整体条件为真
[ 1 -lt 2 -a 2 -gt 3 ] && echo “为真” || echo “为假” 为假
[ 1 -lt 2 -o 2 -gt 3 ] && echo “为真” || echo “为假” 为真
使用下面两个符号作为条件比对,必须使用双中括号
&& 并且
|| 或者
[[ 3 -lt 2 || 2 -gt 3 ]] && echo “为真” || echo “为假” 为假
[[ 1 -lt 2 && 2 -gt 3 ]] && echo “为真” || echo “为假” 为假
9.流程控制语句之case语句
case 变量 in
变量值1)
命令序列
;;
变量值2)
命令序列
;;
变量值3)
命令序列
;;
变量值N)
命令序列
;;
*)
命令序列
exit
esac
10.循环语句之for循环
for 变量 in 取值列表
do
循环体
done
当条件为真,则执行循环体,如果条件为假,则结束循环。
11.循环语句之while循环
#第一种
while 条件测试
do
循环体
done
#第二种
while true
do
循环体
done
#第三种
while read line
do
循环体
done < path.txt
Num=1
while [ $Num -lt 10 ]
do
echo $Num
let Num++
done
.调用函数库
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
action “xxxxxxxxxxxxxxxxxxxxxxxxxx” /bin/true
action “xxxxxxxxxxxxxxxxxxxxxxxxxx” /bin/false