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 ...
随机推荐
- 借鉴seisman安装软件时的文件放置选择
对于大型的软件包的安装来说: 当下载成功一个软件的压缩包后: tar -xvf xxxx.tgz ./configure --prefix=/opt/xxxx make sudo make insta ...
- 如何学php少走弯路
我是自学php,而且是非计算机专业,算半路出家的.(工作了一段时间又自学编程) 1.一本好书至关重要.如果这本书的知识非常深入,那么还是不要看了.对初学者来说只能是打击.因为很多东西都看不懂.一本知识 ...
- nib must contain exactly one top level object which must be a UICollectionReusableView instance
多了一个
- vim 程序编辑器
基本上vi共分为三种模式,分别是一般模式.编辑模式与指令列命令模式.vi 三种模式的相互关系如下图: vim的暂存档.救援回复与开启时的警告信息当我们在使用vim编辑时,vim会在与被编辑的档案的目录 ...
- Lua基本语法-书写规范以及自带常用函数
Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String Ope ...
- Ajax和SpringMVC之间JSON交互
Ajax和SpringMVC之间的json数据传输有两种方式: 1.直接传输Json对象 2.将Json序列化成json字符串 1.直接传输Json对象 前端Ajax $(document).read ...
- 习题3.5 求链表的倒数第m个元素(20 分)浙大版《数据结构(第2版)》题目集
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素. 函数接口定义: ElementType Find( List L, int m ); 其 ...
- hdu 5310(贪心)
题意:要买n个纪念品,单价p元,有团购价 m个q元,问怎样买钱最少 这个是BC周年庆第一题,水题昂,小学数学题,就是看n个纪念品单买.总体买团购然后零头买单价的.全部买团购价的多买也无所谓的,然后直接 ...
- TP3.2整合kindeditor
HTML <!-- KE图片上传 --> <link rel="stylesheet" href="__PUBLIC__/kindeditor/th ...
- leetcode:Symmetric Tree【Python版】
#error caused by:#1:{} 没有考虑None输入#2:{1,2,2} 没有控制h和t#3:{4,-57,-57,#,67,67,#,#,-97,-97} 没有考虑负号,将s从str变 ...