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)
上一篇 2016-08-16 13:59
下一篇 2016-08-16 13:59

相关推荐

  • 用户和组管理的命令

    用户管理概念: 用户类别:         管理员,普通用户,(系统用户和登录用户) 组类别:         管理组员,普通用户组         基本组和附加组         私有组,公共组 数…

    Linux干货 2016-12-21
  • Linux任务计划及内核管理

    作业管理:     前台作业:通过终端启动,且启动后一直占据终端;     后台作业:通过终端启动,但启动后随即转入后台运行(释放终端) 将作业放入后台的操作     1)运行中的作业:ctrl+z     2)还未执行的作业:command &   …

    Linux干货 2016-09-09
  • Linux启动流程

    Linux的启动流程有以下部分组成,以下流程以CentOs 6.8为例 1、POST加电自检,检测各项硬件工作是否正常,BIOS选择启动设备。 2、根据设备的前446字节,加载bootloader程序 3、initramfs是1.5阶段,intramfs文件是创建系统时生成的文件。intramfs是一个过渡阶段,initramfs加载系统的一些设备驱动,比如…

    2017-05-15
  • Bash编程之流程控制

    Bash作为一种过程式编程语言,拥有一套流程控制体系,可完成选择执行,循环执行功能。下面分别介绍if/else,case,select,for,while/until等语法的使用。

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

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash  declare -i loginable=0 declare -i unloginable=0  &n…

    Linux干货 2016-09-07
  • 使用ext_skel和phpize构建php5扩展

    首先声明:我们要构建的是扩展或者模块名为hello_module.该模块提供一个方法:hello_word. 1、php环境的搭建 我们一般使用源码包编译安装,而不是binary包安装。因为使用PHP的二进制分发包安装有些冒险,这些版本倾向于忽略./configure的两个重要选项,它们在开发过程中很便利: 第一个–enable-debug。这个…

    Linux干货 2015-05-28

评论列表(1条)

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

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