Linux小知识

*^_^*星辰大海 2020-12-22 07:46:23
[color=#CCFFFF][color=#00FFFF]1、while循环

#! /bin/bash

# while-count: display a series of numbers

count=1

while [ $count -le 5 ]; do
echo $count
count=$((count+1))
done
echo "Finished"

2、while改进菜单程序

#! /bin/bash

# while-menu: a menu driven system information program

DELAY=3 # number of seconds to display results

while [[ $REPLY != 0 ]]; do
clear
cat <<- _EOF_
Please Select:

1. Display System Information
2. Display Disk Space
3. Display Home Space Utilization
0. Quit

_EOF_
read -p "Enter selection [0-3] > "

if [[ $REPLY =~ ^[0-3]$ ]]; then
if [[ $REPLY == 1 ]]; then
echo "Hostname: $HOSTNAME"
uptime
sleep $DELAY
fi
if [[ $REPLY == 2 ]]; then
df -h
sleep $DELAY
fi
if [[ $REPLY == 3 ]]; then
if [[ $(id -u) -eq 0 ]];then
echo "Home Space Utilization (All Users)"
du -sh /home/*
else
echo "Home Space Utilization ($USER)"
du -sh $HOME
fi
sleep $DELAY
fi
else
echo "Invalid entry."
sleep $DELAY
fi
done
echo "Program terminated."


3、跳出循环

#! /bin/bash

# while-menu2: a menu driven system information program

DELAY=3 # number of seconds to display results

while true; do
clear
cat <<- _EOF_
Please Select:

1. Display System Information
2. Display Disk Space
3. Display Home Space Utilization
0. Quit

_EOF_
read -p "Enter selection [0-3] > "

if [[ $REPLY =~ ^[0-3]$ ]]; then
if [[ $REPLY == 1 ]]; then
echo "Hostname: $HOSTNAME"
uptime
sleep $DELAY
continue
fi
if [[ $REPLY == 2 ]]; then
df -h
sleep $DELAY
continue
fi
if [[ $REPLY == 3 ]]; then
if [[ $(id -u) -eq 0 ]];then
echo "Home Space Utilization (All Users)"
du -sh /home/*
else
echo "Home Space Utilization ($USER)"
du -sh $HOME
fi
sleep $DELAY
continue
fi
if [[ $REPLY == 0 ]]; then
break
fi
else
echo "Invalid entry."
sleep $DELAY
fi
done
echo "Program terminated."


4、until:while命令退出状态不为0时终止循环,而until命令则刚好相反,会在接收到为0的退出状态时终止。

#! /bin/bash

# until-count: display a series of numbers

count=1

until [ $count -gt 5 ]; do
echo $count
count=$((count+1))
done
echo "Finished"


5、for循环
for variable [in words]; do
commands
done

例:命令行中输入:
for i in A B C D; do echo $i; done
for i in {A..D}; do echo $i; done
for i in D*; do echo $i; done


6、for:C语言形式
for (( expression1; expression2; expression3 )); do
commands
done

例:
#!/bin/bash

# simple_counter : demo of C style for command

for (( i=0; i<5; i=i+1 )); do
echo $i
done[color=#FF00FF]
[/color][/color][/color]
...全文
3394 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,287

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 实用资料发布区
社区管理员
  • 实用资料发布区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧