CTDP linux 程序员手册 (4.3) 控制和迭代

本文详细介绍了Shell脚本中的几种关键控制结构,包括if、case、for、until和while循环。通过具体示例展示了如何使用这些结构来实现条件判断和循环操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


<!-- google_ad_client = "pub-2416224910262877"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_channel = ""; google_color_border = "E1771E"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; // -->

  • if – 根据一个条件执行多个分支语句。例如:
· if [ ! -d /mnt ]  # 确认目录 /mnt 是否存在
· then
· mkdir /mnt
· fi
  • case – 根据一个变量得值执行指定的命令。例如:
· case $NUM
· 1)
· echo The number is 1
· ;;
· 2)
· echo The number is 2
· ;;
· *)
· echo The number is not 1 or 2
· ;;
· esac
  • for – 用于一个条件的所有情况的循环。在下面的例子中,它被用于将目录/mnt/floppy 中的文件拷贝到目录 /etc 中。对于每一行给出相应得描述:
    1. for 循环语句遍历所有找到得文件
    2. 测试这个文件是普通文件并且不是目录。
    3. 注释行。
    4. 这一行用$i提取文件名称,它包含全称路径。并且附值给变量filename。 这种方法叫参数扩展,在bash man中有相关的文档。了解更多信息请查阅"Linux Programmer's Guide".
    5. 这一行向标准输出发送一个句子,显示什么文件正在被拷贝。
    6. 这一行利用-p 选项实现了拷贝操作并且保留了文件属性。注意:大部分得脚本编程能力来源于对各种命令、程序和工具的掌握程度,而不是基于严格受限的晦涩的语法。如果读了系统启动脚本/etc/rc.d 和相关的目录之后,这是相当明显的。
    7. 这一行结束 if 语句.
    8. 这一行结束 for 语句.
· 1.for i in /mnt/floppy/*; do
· 2. if [ -f $i ]; then
· 3. # if the file is there
· 4. filename=${i#/mnt/floppy/}
· 5. echo copying $i to /etc/$filename
· 6. cp -p $i /etc/$filename
· 7. fi
· 8.done
  • until – 直到某条件被满足,一直循环执行。语法如下:
· until [ expression ]
· do
· statements
· done
  • while – 当某条件被满足时,循环被执行。下列得循环将一直被执行:
· while [ 1 ]
· do
· statement(s)
· done


<!-- google_ad_client = "pub-2416224910262877"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_channel = ""; google_color_border = "E1771E"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; // -->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值