Linux Bash系列教程(12)-流程控制之 while循环

上一篇Bash系列教程(11)-流程控制之 for循环我们讲解 for循环,这一篇我们接着讲解一下 while循环。
while 循环语法如下:
while 条件测试; do 命令块; done
其中“条件测试”参见 Bash系列教程(9)-流程控制之 if条件判断中的讲解。
下面我们举例说明如何使用 while循环。

declare -i i=1
declare -i sum=0
while ((i<=20))
do
    let sum=sum+i
    let i++
done
echo "Sum from 1to20 is: $sum"

输出:
Sum from 1to20 is: 190

cat > while-1.sh <<EOF
file=~/while-1-test-file
while ! [ -e $file ];
do
    echo 'wait...'
    sleep(1);
done
echo 'File found.'
EOF
chmod u+x while-1.sh
./while-1.sh

#同时在另一个终端中创建 ~/while-1-test-file 即可以看到效果

:> ~/while-1-test-file
while read line;
do
  echo $(cut -d: -f1);
done < /etc/passwd

输出:
bin daemon adm lp sync shutdown halt mail uucp operator games gopher ftp nobody usbmuxd smolt avahi-autoipd dbus abrt avahi rtkit pulse colord openvpn saslauth gdm nm-openconnect mailnull smmsp sshd chrony tcpdump zpz apache tss oprofile mysql memcached

无穷循环的实现:

while ((1)); done echo 'unlimited loop.';done
while true; done echo 'unlimited loop.';done
while : ; done echo 'unlimited loop.';done

One Trackback

  1. […] 上一篇Bash系列教程(12)-流程控制之 while循环我们讲解了 while循环,这一篇我们来讲解 until循环,但其循环的判断条件正好和 while相反。 until循环的语法如下: until “条件测试”; do 命令块; done 其中“条件测试”参见 Bash系列教程(9)-流程控制之 if条件判断中的讲解,这里只有当“条件测试”要返回“假”时循环才继续执行。 […]

Post a Comment

Your email is never shared. Required fields are marked *

*
*