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 ...
随机推荐
- IT兄弟连 HTML5教程 HTML5的曲折发展过程 浏览器之间的大战
播放电影和音乐要使用播放器,浏览网页就需要使用浏览器.浏览器虽然只是一个设备,并不是开发语言,但在Web开发中必不可少,因为浏览器要去解析HTML5.CSS3和JavaScript等语言用于显示网页, ...
- MySQL基础之Natural Join用法
Natural join即自然连接,natural join等同于inner join或inner using,其作用是将两个表中具有相同名称的列进行匹配 用https://www.w3resourc ...
- Python - 部分PEP8规范
写代码就像写字一样,为什么有的人写的字十分漂亮,而有的人写的字过后连自己都不认识,最主要还是从一开始是否对自己严格要求.从现在开始就当自己是个初学者,把代码写漂亮点.以下截取了部分PEP8代码规范,里 ...
- Python 学习 第16篇:数据类型(字典和Json)
字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象. 字典有两个重要的特征: 字典是无序的,字典项没有特定的顺序,只能通过键来获取值: 字典是可变的,支持原处修改 ...
- 315道Python常见面试题
第一部分,Python基础篇 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? Python ...
- django实现客户端文件下载
基于django项目,由于不是专门讲文件的下载,这里仅是项目需要,所以可能不是特别的详细.仅做流程的演示: 实现过程: 1.准备下载url # 下载文件 url(r'^download_file/$' ...
- MySQL学习——操作自定义函数
MySQL学习——操作自定义函数 摘要:本文主要学习了使用DDL语句操作自定义函数的方法. 了解自定义函数 是什么 自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由SQL ...
- Model赋值返回json
DataTable resultList = bll.GetResultListByCondition(bureauCode, deptCode, fileTitle); IList<GanBu ...
- 有趣的bug——Java静态变量的循环依赖
背景 是的,标题没有错误,不是Spring Bean的循环依赖,而是静态变量之间的循环依赖. 近期的项目均是简单的Maven项目,通过K8S部署在阿里云上,其配置文件读取规则如下所示: (1) 优先读 ...
- Python异常类型及处理、自定义异常类型、断言
异常的概念.识别报错信息 异常处理 断言的基本使用 异常类型(异常就是报错) 常见异常 NameError:名称错误 SyntaxError:语法错误 TypeError:类型错误 错误回溯 查看报错 ...