1.Shell脚本中有需要权限输入密码的:
echo ${PASSWORD} | sudo -S XXX
2.if else的使用
if [ $1x == "ab"x ]; then echo "you had enter ab" elif [ $1x == "cd"x ]; then echo "you had enter cd" else echo "you had enter unexpected word" fi
3.注释:
#
或
if false;then
xxx
fi
4.判断两个值是否相等
if [ "$var1" == "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
5. # 这里的-f参数判断$myFile是否存在 -d表示文件夹
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
6.在sh执行中出错脚本退出,当我们不需要退出时:
Set +e: shell脚本出错,继续执行,不退出。
Set -e: shell脚本出错,退出。
7.$符号的使用
1. $$ : Shell本身的PID(ProcessID)
2. $? : 最后运行的命令的结束代码(返回值)
3. $* : 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
4. $@: 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
5. $# : 添加到Shell的参数个数
6. $0 : Shell本身的文件名
7.$1~$n : 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
8.判断大小关系
-eq //equal 等于
-ne //no equal 不等于
-gt //great than 大于
-lt // low than 小于
ge // great and equal 大于等于,注意没有"-"
le //low and equal 小于等于,注意没有“-”
9.while
计算1-100的和
i=1
sum=0
while [ $i -le 100 ]
do
let sum=sum+$i
let i++
done
echo $sum
10.for : 计算1 到10,分别计算i * 3 + 1
#!/bin/bash
for i in $(seq 1 10)
do
echo $(expr $i \* 3 + 1);
done
或 注意是 .. 两点。
#!/bin/bash
for i in {1..10}
do
echo $(expr $i \* 3 + 1);
done
11.case
当NUM == 1 ;输出 "小二,来一碗米饭"
当NUM == 2 ;输出 "小二,来一碗面条"
当NUM == 3 ;输出 "小二,来一碗包子"
case $NUM in
1)
echo "小二,来一碗米饭"
;;
2)
echo "小二,来一碗面条"
;;
3)
echo "小二,来一锅包子"
;;
esac