Shell 位置参数总结

描述:

位置参数指的是shell脚本的命令行参数,同时也表示shell函数的额函数参数。

说明:

wKiom1exn6Hyoa_EAAA2r_iATJg372.png

示例:

#!/bin/sh
echo "number:$#"     # 传给脚本的参数个数
echo "scname:$0"     # 脚本的名字
echo "first :$1"     # 传递给该shell脚本的第一参数
echo "second:$2"     # 传递给该shell脚本的第二个参数
echo "argume:$@"        # 传递给脚本的所有的参数的列表
echo "show parm list:$*"    # 以一个单字符串显示所有向脚本传递的参数,
                   与位置不同,参数可以超过九个
echo "show process id:$$"    # 脚本运行的当前ID号
echo "show precomm stat: $?"  # 显示最后命令的退出状态,0表示正确,其它数字表示错误

# ./variable aa bb
number:2
scname:./variable
first:aa
second:bb
argume:aa bb
show parm list:aa bb
show process id:24544
show precomm stat:0

$@  与 $* 的相同点如下:

1、直接输出不保留空格

2、带双引号输出会保留带引号的空格

3、不带双引号循环遍历的输出结果一样:每个字符串单独输出

不同点如下:

1、带双引号遍历$*相当于带双引号输出$*

2、带双引号遍历$@分别输出每个参数,带双引号的参数保留空格输出

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in $*      
> do
> echo $i           
> done
apple
pie
pears
peaches

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in $@
> do
> echo $i
> done
apple
pie
pears
peaches

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in "$*"
> do
> echo $i            # 将所有参数变量视为一个
> done
apple pie pears peaches

[root@localhost ~]# set 'apple pie' pears peaches
[root@localhost ~]# for i in "$@"
> do
> echo $i          #  这里的单引号将两个单词合成一个
> done
apple pie
pears
peaches

原创文章,作者:pingsky,如若转载,请注明出处:http://www.178linux.com/36084

(0)
pingskypingsky
上一篇 2016-08-16 13:59
下一篇 2016-08-16 13:59

相关推荐

  • 01

    0101

    Linux干货 2016-08-08
  • 马哥网络教育班第21期+第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 [root@CentOS6 ~]# cp -r /etc/skel /home/tuser1 [root@CentOS6 ~]# chmod&nb…

    Linux干货 2016-07-29
  • 脚本小练习

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。                            …

    Linux干货 2016-08-15
  • Linux网络命令学习

    Linux网络命令之网络环境查看命令:ifconfig:查看与配置网络状态命令(只能看到IP地址和子网掩码)ifup 网卡设备名:启用该网卡设备,如:ifup eth0和ifdown lonetstat 选项:  -t:列出TCP协议端口  -u:列出UDP协议端口  -l:仅列出在监听状态网络服务  -a:查看所有连…

    Linux干货 2017-06-25
  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod&nb…

    Linux干货 2016-09-05
  • linux操作系统rpm软件包管理

    软件包管理 软件包运行环境: API:Application Programming Interface     使用标准:POSIX:     源代码运行步骤:预处理(如处理注释)—>编译成汇编代码—>链接其他库文件 ABI:applicatio…

    2016-08-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-16 15:16

    写的较为简单哦,变量分为本地变量,环境变量,全局变量,位置变量,特殊变量等,这些都需要自己去整理的哦