运维Shell牛刀小试(十一):for循环读取多个命令行参数


运维Shell脚本小试牛刀(一)

运维Shell脚本小试牛刀(二)

运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解

运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客

Cenos7安装小火车程序动画

运维Shell脚本小试牛刀(五):until循环

运维Shell脚本小试牛刀(六): Shell中的函数认知

运维Shell脚本小试牛刀(七):从函数文件中调用另外一个脚本文件中函数

运维Shell脚本小试牛刀(八): case模式忽略命令行参数大小写演示

运维Shell脚本牛刀小试(九): 重定向操作符“>“及双重定向“>>“

 运维Shell脚本小试牛刀(十)

运维Shell牛刀小试(十一):for循环读取多个命令行参数


一: for循环来接收命令行参数,进行分叉处理不同的逻辑 

当有n个命令行参数数,处理使用shift命令读取命令行参数进行分叉处理外,通常还可以使用for循环与特殊参数$*|$@读取命令行参数进行相关的分支逻辑处理


[root@www standandinout]# cat forreadparameter.sh 
#!/bin/bash -
#==================================================================================================================
#
#
#                           FILE:  forreadparameter.sh
#                           USAGE: ./forreadparameter.sh
#    DESCRIPTION: for循环读取命令行参数
#        OPTIONS: ------------------------------------------------------------------------------------------
#        REQUIREMENTS: -------------------------------------------------------------------------------------

#        BUGS: ---------------------------------------------------------------------------------------------
#        NOTES: -------------------------------------------------------------------------------------------- 
#        AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com
#    ORGANIZATION:
#        CREATED: 2023-8-24 09:11:20    
#        REVISION: ------------------------------------------------------------------------------------------
#
#
#
#
#
#====================================================================================================================
# 定义变量E_quit_signal
e_quit_signal=68

#如果特殊变量的$1的值为空,则打印脚本的使用方法,并以退出状态码68退出脚本

if [ ! -n $1 ]
then
 

   # 打印脚本的使用方法到标准输出
   echo "Usage: `basename $0`  argument1 argument2 ........................................."

   # 退出脚本,退出状态码为68
   exit ${e_quit_signal}
fi

# 定义变量index
index=1
# 打印双引号中的内容到标准输出
echo "Listing args with \$*:"

# 使用for
for arg in $*
do

   # 打印输出变量index和arg的值及相应的内容到标准输出
   echo "Arg #$index = $arg......"

   # 将变量index的值加1
   let index+=1
done
echo
 # 重新将变量的值赋值为1
index=1

#打印双引号中的内容到标准输出
echo "Listing args with \"\$@\":"

# 使用for循环遍历特殊变量$@的值
for arg in "$@"
do

  # 打印输出变量index和arg的值及相应内容到标准输出 
  echo "Arg #$index = $arg"
  #将变量index的值加1
  let index+=1
done
 

二: 脚本测试 



[root@www standandinout]# ./forreadparameter.sh one two three four five six seven eight night ten
Listing args with $*:
Arg #1 = one......
Arg #2 = two......
Arg #3 = three......
Arg #4 = four......
Arg #5 = five......
Arg #6 = six......
Arg #7 = seven......
Arg #8 = eight......
Arg #9 = night......
Arg #10 = ten......

Listing args with "$@":
Arg #1 = one
Arg #2 = two
Arg #3 = three
Arg #4 = four
Arg #5 = five
Arg #6 = six
Arg #7 = seven
Arg #8 = eight
Arg #9 = night
Arg #10 = ten
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/109849.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringCloud微服务项目实战-mall4cloud项目(2)】——mall4cloud-gateway

mall4cloud-gateway网关模块 系统架构与网关介绍网关介绍 网关层代码依赖引入bootstrap配置nacos配置gateway配置处理跨域问题gateway路由断言配置gateway路由过滤配置 总结 代码地址 github地址 fork自github原始项目 gitee地址 fork自gitee原始项目 系统架构与网关介绍 从图…

深圳唯创知音电子将参加IOTE 2023第二十届国际物联网展•深圳站

​ 2023年9月20~22日,深圳唯创知音电子将在 深圳宝安国际会展中心(9号馆9B1)为您全面展示最新的芯片产品及应用方案,助力传感器行业的发展。 作为全球领先的芯片供应商之一,深圳唯创知音电子一直致力于为提供高质量、…

JVM 篇

一、知识点汇总 其中内存模型,类加载机制,GC是重点方面。性能调优部分更偏向应用,重点突出实践能力。编译器优化和执行模式部分偏向于理论基础,重点掌握知识点。 内存模型:各部分作用,保存哪些数据。类加载…

java设计模式之观察者模式

. 基本概念 观察者(Observer)模式中包含两种对象,分别是目标对象和观察者对象。在目标对象和观察者对象间存在着一种一对多的对应关系,当这个目标对象的状态发生变化时,所有依赖于它的观察者对象都会得到通知并执行它…

数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法...

全文链接:http://tecdat.cn/?p30131 最近我们被客户要求撰写关于上海空气质量指数的研究报告。本文向大家介绍R语言对上海PM2.5等空气质量数据(查看文末了解数据免费获取方式)间的相关分析和预测分析,主要内容包括其使用实例&…

嵌入式-数据进制之间的转换

目录 一.简介 1.1十进制 1.2二进制 1.3八进制 1.4十六进制 二.进制转换 2.1二进制-十进制转换 2.2八进制-十进制转换 2.3十六进制-十进制转换 2.4十进制-二进制转换 2.5十进制-八进制转换 2.6十进制-十六进制转换 2.7小数部分转换 一.简介 被传入到计算机的数据要…

SpringBoot-接口幂等性

幂等 幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。 尤其是支付、订单等与金钱挂…

华硕电脑怎么录屏?分享实用录制经验!

“华硕电脑怎么录屏呀,刚买的笔记本电脑,是华硕的,自我感觉挺好用的,但是不知道怎么录屏,最近刚好要录一个教程,怎么都找不到在哪里录制,有人能教教我吗?” 随着电脑技术的不断发展…

包管理工具--》其他包管理器之cnpm、pnpm、nvm

包管理工具系列文章目录 一、包管理工具--》npm的配置及使用(一) 二、包管理工具--》npm的配置及使用(二) 三、包管理工具--》发布一个自己的npm包 四、包管理工具--》yarn的配置及使用 五、包管理工具--》其他包管理器之cnpm…

javascript检测网页缩放演示代码

一、为什么会提示浏览器显示比例不正常? 在网上冲浪,有时在打某个网站时,会提示你的浏览器显示比例不是100%,建议你将浏览器显示比例恢复为100%,以便获得最佳显示效果。 二、检测网页缩放比例的方法 那么这些网站是如…

迅为iTOP-iMX6QPLUS-Android6.0下uboot添加网卡驱动

本文档介绍在 iTOP-iMX6Q 和 iTOP-iMX6Q-PLUS 安卓 6.0 的 uboot 上添加网卡驱 动,添加完网卡驱动以后,uboot 就可以正常使用网络了。 1 具体步骤 1.1 修改 mx6sabre_common.h 文件 在 iTOP-iMX6_android6.0.1 源码目录下输入以下命令,打…

Python stomp 发送消息无法显示文本

我们向消息服务器通过 stomp 发送的是文本消息。 当消息服务器发送成功后,消息服务器上的文本没有显示,显示的是 2 进制的数据。 如上图,消息没有作为文本来显示。 问题和解决 消息服务器是如何判断发送的小时是文本还是二进制的。 根据官…