OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

bash 可以表达类似的想法。 假设我们想按顺序显示五个数字-


从一到五的顺序。 一种 打坏 脚本可以构造如下:


#!/斌/庆典


# while-count: 显示一系列数字 count=1

而 [[ $count -le 5 ]]; 做 echo $count count=$((count + 1))

完成

回声“完成。”

#!/斌/庆典


# while-count: 显示一系列数字 count=1

而 [[ $count -le 5 ]]; 做 echo $count count=$((count + 1))

完成

回声“完成。”


执行时,此脚本显示以下内容:



[我@linuxbox ~]$ 计数

1

2

3

4

5

成品。

[我@linuxbox ~]$ 计数

1

2

3

4

5

成品。


的语法 命令是:

命令; 做 命令; 完毕

喜欢 if, 评估命令列表的退出状态。 只要退出状态为零,它就会执行循环内的命令。 在上面的脚本中,变量 创建并分配初始值 1。 命令评估退出状态 [[]] 复合命令。 只要 [[]] 命令返回零退出状态,循环内的命令被执行。 在每个循环结束时, [[]] 命令重复。 经过五次循环迭代后, 增加到 6 个, [[]] 命令不再返回零退出状态并且循环终止。 程序继续执行循环后的下一条语句。

我们可以使用 while循环 改善 阅读菜单 上一章的程序:


#!/斌/庆典


# while-menu:菜单驱动的系统信息程序

#!/斌/庆典


# while-menu:菜单驱动的系统信息程序


延迟=3 # 显示结果的秒数


而 [[ $REPLY != 0 ]]; 做

清除

猫<<- _EOF_

请选择:


1. 显示系统信息

2. 显示磁盘空间

3. 展示家居空间利用率

0. 退出


_EOF_

read -p "输入选择 [0-3] > "


如果 [[ $REPLY =~ ^[0-3]$ ]]; 然后如果 [[ $REPLY == 1 ]]; 然后

echo "Hostname: $HOSTNAME" 正常运行时间

睡眠 $DELAY

fi

如果 [[ $REPLY == 2 ]]; 然后 df -h

睡眠 $DELAY

fi

如果 [[ $REPLY == 3 ]]; 然后

如果 [[ $(id -u) -eq 0 ]]; 然后

echo "家庭空间利用率(所有用户)" du -sh /home/*

其他

echo "家庭空间利用率 ($USER)" du -sh $HOME

fi

睡眠 $DELAY

fi

其他

echo "无效输入。"

睡眠 $DELAY

fi

完成

echo "程序终止。"

延迟=3 # 显示结果的秒数


而 [[ $REPLY != 0 ]]; 做

清除

猫<<- _EOF_

请选择:


1. 显示系统信息

2. 显示磁盘空间

3. 展示家居空间利用率

0. 退出


_EOF_

read -p "输入选择 [0-3] > "


如果 [[ $REPLY =~ ^[0-3]$ ]]; 然后如果 [[ $REPLY == 1 ]]; 然后

echo "Hostname: $HOSTNAME" 正常运行时间

睡眠 $DELAY

fi

如果 [[ $REPLY == 2 ]]; 然后 df -h

睡眠 $DELAY

fi

如果 [[ $REPLY == 3 ]]; 然后

如果 [[ $(id -u) -eq 0 ]]; 然后

echo "家庭空间利用率(所有用户)" du -sh /home/*

其他

echo "家庭空间利用率 ($USER)" du -sh $HOME

fi

睡眠 $DELAY

fi

其他

echo "无效输入。"

睡眠 $DELAY

fi

完成

echo "程序终止。"


通过将菜单包含在 while 循环中,我们可以让程序在每次选择后重复菜单显示。 只要循环继续 回复 不等于“0”,菜单再次显示,让用户有机会再次选择。 在每个动作结束时, 睡觉 命令被执行,因此程序将暂停几秒钟,以便在清除屏幕和重新显示菜单之前看到选择的结果。 一次 回复 等于“0”,表示“退出”选择,


循环终止并继续执行以下行 完成.


OnWorks 的顶级操作系统云计算: