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参数的更多相关文章

  1. Shell 传递参数

    Shell 传递参数 向脚本传递参数,格式为:$n. 向脚本传递三个参数,并分别输出: echo "Shell 传递参数实例!"; echo "第一个参数为:$1&quo ...

  2. 2. Shell 传递参数

    1. 概要 我们可以在执行 Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推-- #!/bin/bas ...

  3. [ 转]Shell中参数($0,$1,$#,$NF,$@等)的含义

    Shell中参数($0,$1,$#,$NF,$@等)的含义 发布时间:2018-01-19 来源:网络 上传者:用户 摘要:此处仅仅从来记录平时常用的命令的参数.以免下次忘记时及时找到.也方便更多的人 ...

  4. shell脚本参数中有空格

    shell脚本参数中有空格 在shell脚本中如果有空格的处理如下: sh test.sh "hello word" echo $1 得到的是hello,而不是hello word ...

  5. Shell传递参数【转载】

    Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以 ...

  6. Shell 传递参数(转)

    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三 ...

  7. Linux学习笔记 -- 为 Shell 传递参数

    我们可以在执行 Shell 脚本时,可以向脚本传递参数.脚本内获取参数的格式为:$n.(n 代表一个数字,0为所执行的shell脚本名称,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类 ...

  8. 三、Shell 传递参数

    Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以 ...

  9. shell传递参数(三)

    $n:n代表一个数字,指执行脚本的第n个参数.特别地,$0指执行的文件名 [root@ipha-dev71- exercise_shell]# cat test.sh #!/bin/bash echo ...

随机推荐

  1. 借鉴seisman安装软件时的文件放置选择

    对于大型的软件包的安装来说: 当下载成功一个软件的压缩包后: tar -xvf xxxx.tgz ./configure --prefix=/opt/xxxx make sudo make insta ...

  2. 如何学php少走弯路

    我是自学php,而且是非计算机专业,算半路出家的.(工作了一段时间又自学编程) 1.一本好书至关重要.如果这本书的知识非常深入,那么还是不要看了.对初学者来说只能是打击.因为很多东西都看不懂.一本知识 ...

  3. nib must contain exactly one top level object which must be a UICollectionReusableView instance

    多了一个

  4. vim 程序编辑器

    基本上vi共分为三种模式,分别是一般模式.编辑模式与指令列命令模式.vi 三种模式的相互关系如下图: vim的暂存档.救援回复与开启时的警告信息当我们在使用vim编辑时,vim会在与被编辑的档案的目录 ...

  5. Lua基本语法-书写规范以及自带常用函数

    Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String Ope ...

  6. Ajax和SpringMVC之间JSON交互

    Ajax和SpringMVC之间的json数据传输有两种方式: 1.直接传输Json对象 2.将Json序列化成json字符串 1.直接传输Json对象 前端Ajax $(document).read ...

  7. 习题3.5 求链表的倒数第m个元素(20 分)浙大版《数据结构(第2版)》题目集

    请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素. 函数接口定义: ElementType Find( List L, int m ); 其 ...

  8. hdu 5310(贪心)

    题意:要买n个纪念品,单价p元,有团购价 m个q元,问怎样买钱最少 这个是BC周年庆第一题,水题昂,小学数学题,就是看n个纪念品单买.总体买团购然后零头买单价的.全部买团购价的多买也无所谓的,然后直接 ...

  9. TP3.2整合kindeditor

    HTML   <!-- KE图片上传 --> <link rel="stylesheet" href="__PUBLIC__/kindeditor/th ...

  10. 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变 ...