格式:
while 判断句 -----》若真,进入循环
do
内容
done
例子1:判断一个数
#!/bin/bash
i=5
while [ $i -ge 1 ]
echo $i
let i=$i-1
运行结果:
5
4
3
2
1
例子2:读取一个文件,全行显示
while read file # read file 从case.sh中读取一行一行内容
echo $file
done <'./case.sh' #''单引号
echo "1.linux 2.window 3.macOS 4.UNIX"
read -p "请选择系统编号:" number
case $number in
1) echo "linux";;
2) echo "window";;
3) echo "macOS";;
4) echo "UNIX";;
*) echo "对不起不能为你服务";;
esac
例子3:读取一个文件,选列显示
`ls -l > ls.txt` #执行ls - l命令,并把结果输出到ls.txt文件中(ls.txt不存在则自动创建)
while read file
let i=0
for str in $file #列控制,空格为截断符
if ((i==4));then #显示第四列数据
echo $str
fi
if ((i==8));then #显示第八列数据
let i=$i+1; #列数++
done < './ls.txt' #读取ls.txt文件
102
array.sh
240
case.sh
189
echo.sh
65
file_test.sh
114
for.sh
辅助参考:ls.txt
-rwxrwxrwx 1 root root 102 Apr 8 20:58 array.sh
-rwxrwxrwx 1 root root 240 Apr 9 14:19 case.sh
-rwxrwxrwx 1 root root 189 Apr 9 12:00 echo.sh
-rwxrwxrwx 1 root root 65 Apr 8 22:56 file_test.sh
-rwxrwxrwx 1 root root 114 Apr 9 11:16 for.sh