热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Shell结构化命令for命令的使用实例

本文介绍了Shell中for命令的基本格式和用法,通过提供一个值列表来迭代执行一系列命令。同时还介绍了如何读取列表中的值,并给出了for命令与其他命令的结合使用示例。

3.4  for命令

         重复一系列的命令是一种常见的变成实践。通常需要重复一组命令直到满足一个特定的条件。bash shell提供for命令,用于创建通过一系列值重复的循环。每次重复使用系列中的一个值执行一个定义的命令集。

         bash shell for命令的基本格式如下:          

for var in list
docommands
done

         在参数list中提供一系列用于迭代的值。指定列表中的值有几种不同的方法。在每次迭代中,变量var包含列表的当前值。第一次迭代使用列表中的第一项,第二次迭代使用第二项,依次类推直到列表中的所有项都被使用为止。

         进入do和done语句之间的命令可以是一条或多条的标准bash shell命令。在命令中,变量$var 包含当前迭代的列表项值。如果愿意,可以将do语句与for语句放在同一行,但是必须使用分号将它与列表项分开:for var in list ; do。

3.4.1 读取列表

         for命令的最基本使用方法是通过在for命令中定义一列值来迭代。每次for命令通过提供的值列表进行迭代时,它将列表中的下一个值赋值给变量。最后一次迭代之后,变量在shell脚本的其他部分中任然有效,它仍然是迭代的最后一个值

         当shell看到列表值当中的单引号,并试图用它们来定义一个单独的数据值,它破坏了list中的过程。有两种方法解决这个问题:

Ø  使用转义字符(\)来转义单引号

Ø  使用双引号来定义使用单引号的值

         这两种方法都可以解决列表中存在单引号和双引号的问题。

         另一个问题是运行多字值。for循环认为每个值都用空格分隔,如果包含空格的数据值,就遇到另一个问题。如果在个别的数据值中有空格,必须使用双引号将它们包围起来使用双引号包围值时,shell不会将双引号作为值的一部分

#!/bin/bash
#for命令读取列表
for fl in $HOME/*
doecho $fl
doneecho "for var in list;do"
for fl in $HOME/*;doecho $fl
doneecho "list中带有单引号"
for wd in I don't know if this'll work
doecho $wd
doneecho "list中使用转义字符!"
for wd in I don\'t know if "this'll" work
doecho $wd
doneecho "list中带有空格!"
for city in Nevade New Hampshire New Mexico New York North Carolina
doecho $city
doneecho "对list表中在一起的使用双引号!"
for city in Nevade "New Hampshire" "New Mexico" "New York" "North Carolina"
doecho $city
done





推荐阅读
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文探讨了如何在发布 XenApp 应用时,通过命令行参数实现启动时的参数传递。特别介绍了静态和动态参数传递的方法,并详细解释了 ICA 文件中两种参数传递方式的区别及安全检查机制。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • 开发笔记:9.八大排序
    开发笔记:9.八大排序 ... [详细]
  • 中科院学位论文排版指南
    随着毕业季的到来,许多即将毕业的学生开始撰写学位论文。本文介绍了使用LaTeX排版学位论文的方法,特别是针对中国科学院大学研究生学位论文撰写规范指导意见的最新要求。LaTeX以其精确的控制和美观的排版效果成为许多学者的首选。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 本文介绍如何在MSYS2环境中将Zsh设置为默认Shell,通过修改msys2.ini、mingw32.ini和mingw64.ini文件实现。 ... [详细]
author-avatar
mobiledu2502934511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有