一、条件判断
格式:
if [ 条件判断式一 ]; then 当条件判断式一成立时,可以进行的命令工作内容; elif [ 条件判断式二 ]; then 当条件判断式二成立时,可以进行的命令工作内容; else 当条件判断式一与二均不成立时,可以进行的命令工作内容; fi
举例:
read -p "Please input (Y/N): " yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "OK, continue"
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "Oh, interrupt!"
else
echo "I don't know what your choice is"
fi
二、case 条件判断
case $变量名称 in #关键字为 case ,还有变量前有钱字号 "第一个变量内容") #每个变量内容建议用双引号括起来,关键字则为小括号 ) # 程序段 ;; #每个类别结尾使用两个连续的分号来处理! "第二个变量内容") # 程序段 ;; *) #最后一个变量内容都会用 * 来代表所有其他值 #程序段 ;; esac # 最终的 case 结尾!『反过来写』思考一下!
举例:
case $1 in
"hello")
echo "Hello, how are you ?"
;;
"")
echo "You MUST input parameters, ex> {$0 someword}"
;;
*) # 其实就相当於万用字节,0~无穷多个任意字节之意!
echo "Usage $0 {hello}"
;;
esac
三、循环
1、while…do…done
当 condition 条件成立时,就进入循环,直到 condition 的条件不成立才停止.
while [ condition ] # 中括号内的状态就是判断 do # do 循环开始! 程序段落 done # 循环结束
举例说明:
s=0 # 这是加总的数值变量
i=0 # 这是累计的数值,亦即是 1, 2, 3....
while [ "$i" != "100" ]
do
i=$(($i+1)) # 每次 i 都会添加 1
s=$(($s+$i)) # 每次都会加总一次!
done
2、until…do…done
当 condition 条件成立时,就终止循环,否则循环持续进行.
until[ condition ] do 程序段落 done
举例说明:
until [ "$yn" == "yes" -o "$yn" == "YES" ]
do
read -p "Please input yes/YES to stop this program: " yn
done
echo "OK! you input the correct answer."
3、for… in …do… done
for var in con1 con2 con3 ... do 程序段 done
举例说明:
filelist=$(ls $dir) # 列出所有在该目录下的文件名称
for filename in $filelist
do
perm=""
test -r "$dir/$filename" && perm="$perm readable"
test -w "$dir/$filename" && perm="$perm writable"
test -x "$dir/$filename" && perm="$perm executable"
echo "The file $dir/$filename's permission is $perm "
done
4、for…do…done
for (( 初始值; 限制值; 运行步阶 )) do 程序段 done
举例说明:
read -p "Please input a number, I will count for 1+2+...+your_input: " nu
s=0
for (( i=1; i<=$nu; i=i+1 ))
do
s=$(($s+$i))
done