sh执行文件 参数传递_Shell脚本传参数方法总结

一、接收固定长度的参数

[root@svn shell_example]# cat params.sh

#!/bin/bash

#传参测试脚本

echo "My name is `basename $0` -I was called as $0"

echo "My first parameter is : $1"

echo "My second parameter is : $2"

空参数执行

[root@svn shell_example]# sh params.sh

My name is params.sh -I was called as params.sh

My first parameter is :

My second parameter is :

传递2个参数执行

[root@svn shell_example]# sh params.sh one two

My name is params.sh -I was called as params.sh

My first parameter is : one

My second parameter is : two

二、那如果还有参数怎么办呢?还要一个个加上来吗?答案是否定的

以下用法应该不陌生,就是直接执行脚本本身,没有附带任何参数,那么脚本讲抛出帮助信息.即怎么使用此脚本.见红字部分

[root@svn shell_example]# sh params_v2.sh

My name is params_v2.sh -I was called as params_v2.sh

I was called with 0 parameters.

Usage: params_v2.sh first second

You provided 0 parameters,but 2 are required.

代码如下

[root@svn shell_example]# cat params_v2.sh

#!/bin/bash

# 这是个测试脚本传参的测试例子

echo "My name is `basename $0` -I was called as $0"

echo "I was called with $# parameters."

if [ "$#" -eq "2" ];then

echo "My first parameter is $1"

echo "My second parameter is $2"

else

echo "Usage: `basename $0` first second"

echo "You provided $# parameters,but 2 are required."

fi

详细的执行过程如下

不传参数执行

[root@svn shell_example]# sh params_v2.sh

My name is params_v2.sh -I was called as params_v2.sh

I was called with 0 parameters.

Usage: params_v2.sh first second

You provided 0 parameters,but 2 are required.

传递3个参数执行

[root@svn shell_example]# sh params_v2.sh one two three

My name is params_v2.sh -I was called as params_v2.sh

I was called with 3 parameters.

Usage: params_v2.sh first second

You provided 3 parameters,but 2 are required.

传递2个参数执行

[root@svn shell_example]# sh params_v2.sh one two

My name is params_v2.sh -I was called as params_v2.sh

I was called with 2 parameters.

My first parameter is one

My second parameter is two

问题来了,要是后期还要加参数怎么办呢?或者我也不确定到底会传几个参数.

解决方法如下,详细执行结果如下

[root@svn shell_example]# cat manyparams.sh

#!/bin/bash

#这是个测试脚本传N个参数的例子

echo "我的名字是 `basename $0` - 我是调用自 $0"

echo "我有 $# 参数"

count=1

while [ "$#" -ge "1" ];do

echo "参数序号为 $count 是 $1"

let count=count+1

shift

done

一个参数执行

[root@svn shell_example]# sh manyparams.sh one

我的名字是 manyparams.sh - 我是调用自 manyparams.sh

我有 1 参数

参数序号为 1 是 one

5个参数执行

[root@svn shell_example]# sh manyparams.sh one two three four five

我的名字是 manyparams.sh - 我是调用自 manyparams.sh

我有 5 参数

参数序号为 1 是 one

参数序号为 2 是 two

参数序号为 3 是 three

参数序号为 4 是 four

参数序号为 5 是 five

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

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

相关文章

android mdpi对应哪一个屏幕,android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配...

1 Android手机目前常见的分辨率1.1 手机常见分辨率:4:3VGA 640*480 (Video Graphics Array)QVGA 320*240 (Quarter VGA)HVGA 480*320 (Half-size VGA)SVGA 800*600 (Super VGA)5:3WVGA 800*480 (Wide VGA)16:9FWVGA 854*480 (Full Wide VGA)HD 1920*1080 High D…

datatable筛选条件_C#利用DataView的RowFilter对DataTable进行查询筛选

1、筛选某个字段满足指定条件的记录DataView dv myDs.Tables[0].DefaultView;dv.RowFilter "Year1427";gv.DataSource dv;Year这个是myDs.Tables[0]的一个字段。这样就是只有Year的值等于1427的记录绑定gv控件。2、用RowFilter对指定列进行模糊匹配我们都知道sql语…

用linq查询html中div个数,C#使用Linq to XML进行XPath查询

最近在用到HtmlAgliltyPack进行结点查询时,发现这里选择结点使用的是XPath。所以这里总结一下在C#中使用XPath查询XML的方式。习惯了用Linq,这里也是用的Linq to xml的。Linq To XML的核心类是XDocument和XElement、XAttribute,下面简单介绍一…

csp怎么给线条描边_PS的四种“描边”方式你都知道吗?Photoshop小知识

1.编辑描边基于位图的运算描边方式在画布里输入需要的文字,对图层单击右键,选择“栅格化文字”。选择顶栏的编辑菜单,选择“描边”,弹出描边对话框后调节粗细、颜色和描边位置,点击“确认”即可。从一些细节我们可以看…

学编导还是学计算机,高二学编导烧钱吗

高二学编导烧钱吗2019-09-22 10:34:23文/马妍高二学编导还是很费钱的。艺术专业的学习普遍都很贵,学编导总体需要3-6万元左右。一般培训班要两到三万,还需要购买一些专业的设备,费用也不低。编导专业简介编导有广义和狭义之分,狭义…

两个质数互质是_科学网—理解黎曼猜想(二)两个自然数互质的概率是多少? - 袁岚峰的博文...

导读:任选两个自然数,它们互质的概率是多少?它就是s 2时欧拉乘积公式右边的连乘的倒数,因此它等于s 2时欧拉乘积公式左边的连加的倒数,即1/ζ(2)。而ζ(2) π^2/6,因此这个概率等于6/π^2 ≈ 60.79%。同…

修改计算机用户权限,如何修改一个电脑账户为最低权限

使用Administrator管理员账户,且不能删除。①在登录的欢迎屏幕显示Administrator账户的方法: 单击“开始→运行”,输入regedit后回车,打开注册表编辑器,依次展开“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\C…

一副眼镜一千多贵吗_央视曝光!一副眼镜上千元,出厂价却只要几十元

原标题:央视曝光!一副眼镜上千元,出厂价却只要几十元眼镜行业历来让人觉得非常“暴利”,那么一副眼镜生产成本究竟是多少呢?据央视财经《正点财经》报道,一副眼镜的出厂价只需几十元。江苏丹阳:…

vue图片时间轴滑动_vue时间轴风格式的图片展示

项目将近完结,在修正bug的同时,也对自己项目中代码进行回顾分析。看回半年前写的东西,真是很多都感到陌生,所以趁着下午的空档时间总结下之前遇到的难点。好的,先上图,目标效果先分析上下两层,上…

用计算机录制一段30,测评!电脑录屏软件哪个好用?小白进阶第1阶段

原标题:测评!电脑录屏软件哪个好用?小白进阶第1阶段电脑录屏软件哪个好用?最近短视频越来越火,小卓发现身边不少人都在捣鼓视频,有拍摄的有录屏的比比皆是。问了一下,大多是对此感兴趣的&#x…

quartz定时器依赖_JAVA使用quartz添加定时任务,并依赖注入对象操作

最近在写定时任务,以前没接触过。查了些相关资料说使用quartz定时框架。需要配置文件:config-quartz.xml相关配置如下(红色部分是之后添加的,在后面步骤会说明):xsi:schemaLocation"http://www.springframework.org/schema/b…

计算机一级b需要学哪些,希望通过江苏省计算机一级B考试的同学千万要看哦!江苏省计算机一级B理论复习资料(绝密资料)...

省一级B理论49、算法的基本性质包括确定性、有穷性、能行性、输出、(输入)50、算法是问题求解规则的一种过程描述。51、用机器语言编写的程序在计算机上可直接运行52、求解可计算问题的程序框架都可用顺序、选择和重复三种控制成分来描述。53、程序设计语言可划分为机器语言、汇…

深信服上网行为管理开启snmp_编写SHELL脚本在CACTI中来实现监控深信服上网行为管理的CPU和内存使用情况...

一、深信服上网行为管理中的SNMP设置二、在CACTI中编写SHELL脚本如下:cpu oid: .1.3.6.1.4.1.35047.1.3内存 oid: .1.3.6.1.4.1.35047.1.4在线用户数oid: .1.3.6.1.4.1.35047.2.1.1.1.0会话数oid: .1.3.6.1.4.1.35047.2.1.1.6.0先编写监控CPU的脚本vim ac.sh#! /bin…

同一个网络中为什么有些计算机可以连接共享打印机,有些需要输入密码,安装局域网共享打印机时,要求输入用户和密码,但对方并没有设置,为什么?谢谢!!...

2006-07-20 回答有的需要,有的不需要如若不需要,则需;windows xp3方法:1、确保你装有打印机的电脑与其他需要打印的电脑已经联网(必须在同一个局域网中、具有相同的子网号和子网掩码)2、开启打印机和文件共享服务:在网…

centos路由查看命令_CentOS下使用Route命令添加路由

方法一添加路由:route add -net 192.168.0.0/24 gw 192.168.0.1route add -host 192.168.1.1 dev 192.168.0.1删除路由:route del -net 192.168.0.0/24 gw 192.168.0.1add 增加路由del 删除路由-net 设置到某个网段的路由-host 设置到某台主机的路由gw 出…

计算机科学与技术博士论文,计算机科学与技术系博士学位论文答辩.PDF

计算机科学与技术系博士学位论文答辩计算机科学与技术系计算机科学与技术系博士学位论文答辩博士学位论文答辩计算机科学与技术系计算机科学与技术系博士学位论文答辩博士学位论文答辩可满足性问题的算法设计与分析可满足性问题的算法设计与分析可满足性问题的算法设计与分析可…

dbscan算法python实现_挑子学习笔记:DBSCAN算法的python实现

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法,是一种基于高密度连通区域的、基于密度的聚类算法,能够将具有足够高密度的区域划分为簇(Cluster),并在具有噪声的数据中发现任意形状的簇。DBSCAN算法通过距离…

计算机怎么应用最小二乘法作图,最小二乘法应用

最小二乘法的数据处理一、引言在实际的工程或者实验中,误差处理和数据的统计是一项必备的过程,处理误差和数据统计的结果与否关系到这项工程最后的结果是否达到预计的要求,所测量数据的实际值和理论值是否接近,关系到工程最后质量…

latex 分行 表格标题过长_Latex 表格内文字过长自动换行 表格内单元格内容强制换行...

\usepackage{array}\begin{tabular}{m{5cm}}或者\begin{tabular}{p{0.9\columnwidth}}[LaTex]表格内单元格内容强制换行multirowmultirow 宏包提供了 \multirow 命令可以在表格中排版横跨两行以上的文本。命令的格式如下:\multirow{nrows}[bigstructs]{width}[fixup…