ShellScript值传递参数
Shell传递参数
######################################摘自菜鸟教程:http://www.runoob.com/linux/linux-shell-passing-arguments.html #####################################
1、shell脚本传递参数
向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
#!/bin/bash
echo "Shell脚本传递参数学习!"
echo "执行的文件名:$0"
echo "第一个参数为$1" ##第一个参数为1
echo "第二个参数为$2" ##第二个参数为2
echo "第三个参数为$3" ##第三个参数为3
执行shellscript脚本:./bian_trans1.sh 1 2 3
2、特殊字符来处理参数
|
参数处理 |
说明 |
|
$# |
传递到脚本的参数个数 |
|
$* |
以一个单字符串显示所有向脚本传递的参数。 |
|
$$ |
脚本运行的当前进程ID号 |
|
$! |
后台运行的最后一个进程的ID号 |
|
$@ |
与$*相同,但是使用时加引号,并在引号中返回每个参数。 |
|
$- |
显示Shell使用的当前选项,与set命令功能相同。 |
|
$? |
显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
例子:
#!/bin/bash
echo "Shell脚本传递参数学习!"
echo "执行的文件名:$0"
echo "第一个参数为$1"
echo "第二个参数为$2"
echo "第三个参数为$3"
echo "传递到脚本的参数个数为:$#" ##传递到脚本的参数个数为:3
echo "传递到脚本的参数为:$*" ##传递到脚本的参数为:1 2
3
echo "脚本运行的当前进程ID号:$$" ##脚本运行的当前进程ID号:14483
echo "后台运行的最后一个进程的ID号:$!" ##后台运行的最后一个进程的ID号:
echo "传递到脚本的参数为:"$@""
##传递到脚本的参数为:1 2 3
echo "当前shell使用的选项为:$-"
##前shell使用的选项为:hB
echo "最后命令的退出状态:$?"
##0表示没有错误,其他任何值表明有错误 ##最后命令的退出状态:0
运行当前脚本:./bian_trans2.sh 1 2 3
备注:$*与$@的区别
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。
#!/bin/bash
###演示$*的效果
echo "-----\$*的演示效果----"
for i in "$*";do
echo $i
done
###打印效果:-----$*的演示效果----
1 2 3
###演示$@的效果
echo "-----\$@的演示效果-----"
for j in "$@";do
echo $j
done
###打印效果:-----$@的演示效果-----
1
2
3
ShellScript值传递参数的更多相关文章
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习
1)形参 形参顾名思义就是形式上的参数,不是实际的参数,它代替实际传入方法的值.在方法体代码中代表了值本身参与运算.形参定义于参数中,它不同于方法体内局部变量,因为是一个变量,在它的作用域内不允许存在 ...
- 【Qt】信号和槽对值传递参数和引用传递参数的总结
在同一个线程中 当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象:(测试时,打印传递前后的地址不同) 引用传递不会复制对象:(测试时,打印传递前后的地址相同) 不在同一 ...
- JAVA参数没有引用传递,只有值传递
原文章地址:http://www.cnblogs.com/clara/archive/2011/09/17/2179493.html 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性, ...
- Java中只有按值传递,没有按引用传递!(两种参数情况下都是值传递)
今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这 ...
- 6 JavaScript函数&内置构造&函数提升&函数对象&箭头函数&函数参数&参数的值传递与对象传递
JavaScript函数:使用关键字function定义,也可以使用内置的JavaScript函数构造器定义 匿名函数: 函数表达式可以存储在变量中,并且该变量也可以作为函数使用. 实际上是匿名函数. ...
- Java 中的值传递和参数传递
Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能 值传递:方法调用时,实际参数 ...
- Java中的值传递和引用传递
这几天一直再纠结这个问题,今天看了这篇文章有点思路了,这跟C++里函数参数为引用.指针还是有很大区别. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里 ...
- java中方法的参数传递机制(值传递还是引用传递)
看到一个java面试题: 问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java 编程语言只有值传递参 ...
- 第一个博客——python通过值传递函数参数
功能:银行账户计算利率(python实现) 部分代码: def addInterest(balance, rate): newBalance = balance * (1 + rate) balanc ...
随机推荐
- 【zibbix自定义监控】zabbix服务自定义监控mysql的状态信息
由于mysql我安装在zabbix_server服务的主机上,所以下面操作在zabbix服务主机上进行,注意服务主机已经安装了监控服务 实现步骤: 1.修改 zabbix_agentd.conf,添加 ...
- 关于 ASP.NET Core 中的 RazorPages
Contact.cshtml @page @model ContactModel @{ ViewData["Title"] = "Contact"; } < ...
- 基于 HTML5 WebGL 的 3D 科幻风机
前言 许多世纪以来,风力机同水力机械一样,作为动力源替代人力.畜力,对生产力的发展发挥过重要作用.近代机电动力的广泛应用以及二十世纪50年代中东油田的发现,使风机发电机的发展缓慢下来. 70年代初期, ...
- Hive_hdfs导入csv文件
转自:Hive_hdfs csv导入hive demo 1 create csv file.student.csv 4,Rose,M,78,77,76 5,Mike,F,99,98,98 2 pu ...
- 垃圾分类环保宣传 PPT模板
模板来源:http://ppt.dede58.com/peixunyanjiang/26263.html
- SpringBoot(十):SpringBoot整合Memcached
一.环境准备memcached 1.4.5SpringBoot 1.5.10.RELEASEjava_memcached-release_2.6.6.jarmemcached 1.4.5 window ...
- python web框架Flask——csrf攻击
CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click ...
- js清除定时器注意点
如何这篇文章所述:https://www.cnblogs.com/mmykdbc/p/7418575.html js多次调用创建定时器的函数,会使定时器速度越来越快,多次调用定时器的使用场景比如:监听 ...
- 升鲜宝V2.0_生鲜配送行业,对生鲜配送行业的思考及对系统流程开发的反思_升鲜宝生鲜配送系统_15382353715_余东升
升鲜宝V2.0_生鲜配送行业,对生鲜配送行业的思考及对系统流程开发的反思_升鲜宝生鲜配送系统_15382353715_余东升 -----生鲜配送行业现状及存在问题----- 1. 从业者整体素质偏低 ...
- win10查看桌面壁纸路径
如题,win10查看自己壁纸的缓存路径,就是找到壁纸的原图:在explorer里输入 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Themes 1 ...