逻辑表达式
if判断
if...then...fi
if [ 条件判断式 ];then
命令 当条件判断式成立时,执行这条命令
if ... then ... else....fi
一颗红心,两手准备
if [ 条件判断式 ]; then
当条件判断式成立时,可以进行的指令工作内容;
else
当条件判断式不成立时,可以进行的指令工作内容;
fi
if ... elif ... elif ... else ... fi
if [ 条件判断式一 ]; then
当条件判断式一成立时,可以进行的指令工作内容;
elif [ 条件判断式二 ]; then
当条件判断式二成立时,可以进行的指令工作内容;
else
当条件判断式一与二均不成立时,可以进行的指令工作内容;
fi
利用 case ..... esac 判断
case $变量名称 in <==关键字为 case ,还有变量前有钱字号
"第一个变量内容") <==每个变量内容建议用双引号括起来,关键字则为小括号 )
程序段
;; <==每个类别结尾使用两个连续的分号来处理!
"第二个变量内容")
程序段
;;
*) <==最后一个变量内容都会用 * 来代表所有其他值
不包含第一个变量内容与第二个变量内容的其他程序运行段
exit 1
;;
esac <==反过来写,结束当前语句结构!
模式还可以是多个
#!/bin/bash
cat << EOF
m|M) show memory usages;
d|D) show disk usages;
q|Q) quit
EOF
read -p "Your choice" choice
case $choice in
m|M) #####
free -m
;;
d|D) #####
df -h
;;
q|Q) #####
exit
;;
*)
echo "Invalid input"
;;
esac
while...do..done(不确定的循环)
while [ condition ] ==>中括号内的状态就是判断式
do ==> do 是循环的开始!
代码段
代码段
done ==> done 是循环的结束
计数
n=0
while [ "$n" -lt 5 ]
do
let n++
echo "$n"
done
读文件
while read line
do
echo $line
done < /etc/passwd
for do done (固定的循环)
for var in con1 con2 con3 ...
do
程序段
done
var 是变量名
con1 con2 con3
是常量,就是具体的数据
也可以是一个已经被赋值的变量, 写法${val1} ${val2}
以上的例子来说,这个$var
的变量内容在循环工作时:
1.第一次循环时,$var
的内容为con1;
2.第二次循环时,$var
的内容时con2;
3.第三次循环时,$var
的内容是con3;
4....
for循环中变量的取值方式
a 从一组字符串中取值
for var in one two three four five
do
echo "****************************"
echo '$var is ' $var
b 从位置变量中取值
for var
do
echo '-----------------------------'
echo '$var is ' $var
done
c 从累计变化的格式中取值
#!/bin/bash
for ((var=1;var<=10;var++))
do
echo "------------------------"
echo '$var is ' $var
done
d 从命令结果中取值
#!/bin/bash
for var in $(cat file.txt)
do
echo " ------------------------"
echo '$var is ' $var
done
IFS
for i in {1..5}
do
echo $i
done
IFS=$'\n'
for line in $(cat test.sh)
do
echo "--------"
echo $line
done
export IFS=$IFS 这个是按照回车符分割可以判断有多少行
网友评论