admin 管理员组

文章数量: 887021


2023年12月24日发(作者:facilitate谐音记忆)

linux shell 循环语句

在Linux Shell中,循环语句允许我们重复执行命令或命令块,从而可以自动化一些任务。

一、for循环

for循环可以遍历一系列参数,并对每个参数执行一系列的命令。语法如下:

```

for 变量名 in 参数1 参数2 ... 参数n

do

执行的命令或命令块

done

```

具体实现方法如下:

例1:遍历列表中的元素

假设我们有如下一个列表:`(apple,banana,watermelon,orange)`,现在我们想要遍历所有元素并输出,使用for循环可以这样实现:

```

#!/bin/bash

fruits=(apple banana watermelon orange)

for fruit in ${fruits[@]}

do

echo $fruit

done

```

输出结果为:

例2:从1到10的数字求和

我们可以用for循环累加1到10的数字,实现求和功能:

sum=0

echo "1+2+...+10=$sum"

```

二、while循环

while循环用于重复执行一系列命令,直到条件为假为止。语法如下:

如果循环条件不成立,则循环不会执行。如果循环条件一直为真,则会一直执行循环中的命令。

例1:取余数大于2的数字

下面的脚本会重复执行输入数字直到输入的数字取余数大于2为止。

echo "请输入一个数字: "

read num

while [ $(($num % 3)) -le 2 ]

do

echo "余数小于等于2"

echo "请输入一个数字: "

read num

done

echo "余数大于2,程序退出"

```

例2:执行命令直到成功

下面的脚本会尝试执行一个命令,如果执行失败,则会一直尝试直到执行成功为止。

command="ls /not/exist/directory"

while [ ! -d "/not/exist/directory" ]

do

echo "执行命令: $command"

$command

if [ $? -ne 0 ]; then

echo "执行失败,将重试"

sleep 3

else

echo "执行成功"

break

fi

done

```

三、until循环

until循环与while循环类似,但是它会一直执行循环直到条件成立(也就是为真)为止。语法如下:

例1:猜数字游戏

下面的脚本会让用户输入数字,直到用户输入的数字等于6为止,然后输出“猜对了!”。

例2:判断某个文件是否存在

下面的脚本会判断文件``是否存在,如果不存在则会等待3秒后再次判断,直到文件存在为止。

until [ -f "" ]

do

echo "文件不存在,将等待3秒钟再次检查"

sleep 3

done

综上所述,Linux Shell中的循环语句对于自动化一些任务非常有用,可以让我们更高效地处理数据。掌握循环语句可以让我们更好地进行Shell脚本的编写。


本文标签: 循环 执行 直到 数字 输入