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. Android2.1消息应用(Messaging)

    我想首先应该从AndroidManifest.xml文件开始,该文件是Android应用(APK)的打包清单,其中提供了关于这个应用程序的基本信息,如名称(application/@label),图标 ...

  2. 1.2.2 Text_Reverse

    Text Reverse Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Proble ...

  3. HDU 4864

    http://acm.hdu.edu.cn/showproblem.php?pid=4864 #include <iostream> #include <cstdio> #in ...

  4. VC++ 6.0 C8051F340 USB 通信 CAN 数据解析

    // HelloWorld.cpp : Defines the entry point for the console application. // /*********************** ...

  5. Linux C socket 封装

    /************************************************************************** * Linux C socket 封装 * 声明 ...

  6. Maven3的环境配置

    1 需要准备一个Maven的包,名字叫:apache_maven_3.3.9(在百度中搜索自行下载) 2 在eclipse中点击window→preferences→maven→Installatio ...

  7. MySQL Disk--SSD 特性

    ======================================================================= SSD 特性 .随机读能力非常好,连续读性能一般,但比普 ...

  8. BAT编程

    echo 表示显示此命令后的字符  echo off 表示在此语句后所有运行的命令都不显示命令行本身  @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响 ...

  9. NOSQL之MEMCACHE

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统.Memcached是一个自由开源的,高性能,分布式内存对象缓存系统.Memcached是一种基于内存的key-value存储,用来存 ...

  10. Linux & Oracle目录说明

    /bin:存放着一百多个Linux下常用的命令.工具  /dev:存放着Linux下所有的设备文件!  /home:用户主目录,每建一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间 ...