格式:

while 判断句   -----》若真,进入循环

do

   内容

done


例子1:判断一个数

#!/bin/bash


i=5

while [ $i -ge 1 ]

do

   echo $i

   let i=$i-1

done


运行结果:

5

4

3

2

1



例子2:读取一个文件,全行显示

while read file    # read file case.sh中读取一行一行内容

do

echo $file

done <'./case.sh'  #''单引号


运行结果:

#!/bin/bash


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 

do

let i=0

for str in $file   #列控制,空格为截断符

do

if ((i==4));then  #显示第四列数据

echo $str

fi

if ((i==8));then  #显示第八列数据

echo $str

fi

let i=$i+1;  #列数++

done 

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