Linux操作系统循环语句-for语句使用介绍

本博客将介绍Linux操作系统中循环语句-for语句的使用方法。我们将详细说明for语句的语法格式,并提供多个案例来演示不同的应用场景。这些案例包括循环创建文件、应用引号或转义符、从变量中取值、从命令中取值、for循环自增自减、批量创建用户、批量探测主机和随机点名。通过学习这些内容,您将能够更好地掌握Shell脚本编写中的循环控制,实现重复执行某些操作的需求。

1. for的语法格式

for循环的语法格式如下:

for 变量名 in 值列表
do
    # 执行的代码块
done

在循环执行时,变量名会依次取值为值列表中的每个元素,并执行代码块中的操作。

2. for循环案例

2.1 案例一:循环创建文件

下面是一个使用for循环创建文件的案例。

for ((i=1; i<=5; i++))
do
    touch "file$i.txt"
done

上述代码将创建5个文件,文件名分别为file1.txt、file2.txt、file3.txt、file4.txt和file5.txt。

2.2 案例二:应用引号或转义符

在某些情况下,我们需要在值列表中使用引号或转义符。

for name in "John" "Alice" "Tom"
do
    echo "Hello, $name!"
done

上述代码将依次输出"Hello, John!"、"Hello, Alice!“和"Hello, Tom!”。

2.3 案例三:从变量中取值

我们也可以从一个变量中取值,并进行循环操作。

names="John Alice Tom"

for name in $names
do
    echo "Hello, $name!"
done

上述代码将依次输出"Hello, John!"、"Hello, Alice!“和"Hello, Tom!”。

2.4 案例四:从命令中取值

除了从变量中取值,我们还可以从命令的输出中获取值列表。

for file in $(ls)
do
    echo "Processing file: $file"
done

上述代码将依次输出当前目录下的每个文件名。

2.5 案例五:for循环自增自减

使用for循环时,我们可以使用自增或自减来控制循环次数。

for ((i=1; i<=10; i+=2))
do
    echo "Number: $i"
done

上述代码将输出奇数序列1、3、5、7和9。

2.6 案例六:批量创建用户

使用for循环可以批量创建用户账号。

for username in user1 user2 user3
do
    useradd $username
    echo "User $username created."
done

上述代码将创建名为user1、user2和user3的用户账号。

2.7 案例七:批量探测主机

我们也可以使用for循环批量探测多个主机的连通性。

for ip in 192.168.0.1 192.168.0.2 192.168.0.3
do
    ping -c 1 $ip > /dev/null

    if [ $? -eq 0 ]
    then
        echo "Host $ip is up."
    else
        echo "Host $ip is down."
    fi
done

上述代码将依次检测给定IP地址的主机是否连通。

2.8 案例八:随机点名

最后,我们可以使用for循环实现随机点名的功能。

students=("Alice" "Bob" "Charlie" "David" "Emma")

for ((i=1; i<=3; i++))
do
    random_index=$((RANDOM % ${#students[@]}))
    echo "Selected student: ${students[$random_index]}"
done

上述代码将随机选择数组中的学生姓名,并输出3个随机选择的结果。

结论

本博客介绍了Linux操作系统中循环语句-for语句的使用方法。我们详细说明了for语句的语法格式,并提供了多个实例来演示不同的应用场景,包括循环创建文件、应用引号或转义符、从变量中取值、从命令中取值、for循环自增自减、批量创建用户、批量探测主机和随机点名。通过学习和应用这些知识,您将能够更好地掌握Shell脚本编写中的循环控制,实现重复执行某些操作的需求。希望这篇博客对您有所帮助!

GitHub 加速计划 / li / linux-dash
9
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:7 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐