shell 5参数
1. shell传递参数
我们可以在执行shell脚本时,向脚本传递参数。
| $n | n代表数字。$0表示执行的脚本名称,$1表示第1个参数,$2是第2个参数. shell默认支持9个参数,使用shift可以传递更多的参数。 | 
| $#,${#*},${#@} | 传递到脚本的参数个数 | 
| $$ | 脚本运行的当前进程的ID号 | 
| $! | 后台运行的最后一个进程的ID号 | 
| $? | 显示上个命令的执行情况。0表示没有错误,其他任何值表明有错误。 | 
| $@ | 一个单字符显示所有向脚本传递的参数 | 
| $* | 以一个单字符显示所有向脚本传递的参数 | 
| $- | 显示shell使用的当前选项,与set命令功能相同 | 
| ${*:1:3},${*:$#} | 表示多个参数 | 
```
#shell
#!/bin/sh
echo "shell脚本名称:" $0    #shell脚本名称: 829test.sh
echo "第一个参数:" $1    #第一个参数: 3
echo "第二个参数:" $2    #第二个参数: 4
echo "脚本的个数:" $#    #脚本的个数: 2
echo "当前进程ID:" $$    #当前进程ID: 6673
echo "后台运行的最后一个进程ID:" $!    #后台运行的最后一个进程ID:
echo "上个命令的执行结果:" $?    #上个命令的执行结果: 0
echo "参数作为字符串显示*:" $* "$*"    #参数作为字符串显示*: 3 4 3 4
echo "参数作为字符串显示@:" $@ "$@"    #参数作为字符串显示@: 3 4 3 4
```
2. \(@与\)*区别
#!/bin/sh
#$@ vs $* 
func1(){
	echo \"\$@\"
	for d in "$@";do
		echo $d
	done
}
func1 1 2 '3 4' '"5 6" 7'
func2(){
	echo \$@
	for d in $@;do
		echo $d
	done
}
func2 1 2 '3 4' '"5 6" 7'
func3(){
	echo \"\$*\"
	for d in "$*";do
		echo $d
	done
}
func3 1 2 '3 4' '"5 6" 7'
func4(){
	echo \$*
	for d in $*;do
		echo $d
	done
}
func4 1 2 '3 4' '"5 6" 7'
| 1 2 '3 4' '"5 6" 7' | $* | $@ | 
| 没有双引号 $*和$@一样,都是按空格分隔打印参数 | 1 2 3 4 "5 6" 7 | 1 2 3 4 "5 6" 7 | 
| 双引号 "$*"一行打印全部参数 "$@"挨个输出参数 | 1 2 3 4 "5 6" 7 | 1 2 3 4 "5 6" 7 | 
#    3. 注意
shell脚本中传递的参数如果包含空格,应该对该参数使用单引号或者双引号。
| 脚本 | 参数:Tom Cat | 参数:"Tom Cat" | 
| #!/bin/sh echo "传入参数:$*" echo "第一个参数:$1" echo "参数个数:$#" | 传入参数:Tom Cat 第一个参数:Tom 参数个数:2 | 传入参数:Tom Cat 第一个参数:Tom Cat 参数个数:1 | 
shell 5参数的更多相关文章
- Shell 传递参数
		Shell 传递参数 向脚本传递参数,格式为:$n. 向脚本传递三个参数,并分别输出: echo "Shell 传递参数实例!"; echo "第一个参数为:$1&quo ... 
- 2. Shell 传递参数
		1. 概要 我们可以在执行 Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推-- #!/bin/bas ... 
- [ 转]Shell中参数($0,$1,$#,$NF,$@等)的含义
		Shell中参数($0,$1,$#,$NF,$@等)的含义 发布时间:2018-01-19 来源:网络 上传者:用户 摘要:此处仅仅从来记录平时常用的命令的参数.以免下次忘记时及时找到.也方便更多的人 ... 
- shell脚本参数中有空格
		shell脚本参数中有空格 在shell脚本中如果有空格的处理如下: sh test.sh "hello word" echo $1 得到的是hello,而不是hello word ... 
- Shell传递参数【转载】
		Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以 ... 
- Shell 传递参数(转)
		我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三 ... 
- Linux学习笔记 -- 为 Shell 传递参数
		我们可以在执行 Shell 脚本时,可以向脚本传递参数.脚本内获取参数的格式为:$n.(n 代表一个数字,0为所执行的shell脚本名称,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类 ... 
- 三、Shell 传递参数
		Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以 ... 
- shell传递参数(三)
		$n:n代表一个数字,指执行脚本的第n个参数.特别地,$0指执行的文件名 [root@ipha-dev71- exercise_shell]# cat test.sh #!/bin/bash echo ... 
随机推荐
- XP停服务,卡巴当后盾——卡巴斯基反病毒软件2014(一年版)
			领取地址:http://xp.kaba365.com/3180000.asp 活动说明活动时间:2014年4月9日零时起赠送产品:卡巴斯基反病毒软件2014(一年版)激活码.赠送对象:中国大陆所有XP ... 
- 解决Ubuntu下添加Log却无法输出(高通平台)
			1.首先考虑到的是你所添加Log的位置确实没有被调用或者在调用前发生异常终止掉了. 2.你修改后没有进行编译或者没有push/install 3.如果你当前的系统版本是User版本,你在push的时候 ... 
- PHP 之 Ci框架下隐藏index.php
			1. 修改 apache 配置文件 开启重写模块 conf/httpd.conf 去掉前面的# LoadModule rewrite_module modules/mod_rewrite.so 对于U ... 
- 炸掉你的城堡!(pygame獾兔大战)
			代码修改bug,添加注释等,獾的速度加快之后很难-- git地址: https://github.com/Jailman/blowupyrcastle.git 游戏资源使用了文章中附带的下载,原版文章 ... 
- MyEclipse2017CI破解教程
			因为工作中需要有多个MyEclipse去管理不同的项目组的工作,恰逢MyEclipse2017CI发布,下载破解尝鲜,因为之前安装了MyEclipse2016CI7和MyEclipse2014GA,两 ... 
- int类型转string类型c++
			前言 使用VS的过程中,经常会用到需要将int类型数据转换为字符串类型,便于显示信息等. 实现方法 c++11标准中的to_string函数,在VS安装文件的include文件中生成的只读文件,使用起 ... 
- ostringstream的用法
			使用stringstream对象简化类型转换C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性.在本文中, ... 
- JPEG文件格式
			格式:JFIF(JPEG档的交换格式)压缩:JPEG(灰阶影像压缩比约为10:1:彩色影像约为20:1)以JPEG文件格式保存的图像实际上是2个不同格式的混合物:JPEG格式规范本身,用来定义图像的压 ... 
- 《DSP using MATLAB》Problem 3.12
- 图片加载完毕后执行JS代码
			$("#img").load(function(){...}); 这是jquery提供的一个方法,但是在IE中会有BUG,IE8不支持,IE9以上刷新后也不会执行,只有强制刷新才执 ... 
