【Linux Shell脚本编程】while循环与until循环

TangLu 未命名 2015-12-30 3770 0

在Shell脚本中常用的循环语句有for循环、while循环和until循环三种。关于for循环语句可以参考之前的文章【Linux Shell脚本编程】if语句、for循环语句基本语法。for循环语句适合用来处理一些明确循环次数的事务,而当需要逐行处理文件内容或者不限制循环处理次数时,推荐使用while循环。下面来看看while循环和until循环语句的基本语法和格式


一、while循环语句

如果判断式的结果为真,也就是$?的值为0时,则重复循环执行一个命令,如果判断式结果为假则跳出循环不再执行

while循环语法结构:

while [ 判断式 ]
do
 所要执行的命令写这里
done



1、实现固定次数的while循环示例:

i=1
while [ $i -le 5 ]
do
   echo $i
   let i++
done



2、用while来读取文件,把输入重定向所读文件的每行内容作为变量line的值,可以同时传递多个值给多个变量

#!/bin/bash
while read line 
do
 echo $line
done < /while.txt

#传递多个值给多个变量
#!/bin/bash
while read work_code query_count query_time
do
  echo "INSERT INTO \`chatgpt_statistical\`.\`user_count\` (work_code,query_count,query_time) VALUES(\'${work_code}\',${query_count},${query_time});"
done < /tmp/1.txt



3、让while无限循环需要用到true或者冒号来完成,二者都不执行实际的命令,但直接返回为真的信号

while true
do
done

while :
do
done


二、until循环语句

和while循环相反,until循环是判断式结果成立则不再执行

until [ 判断式 ]
do
需要执行的命令
done

评论