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

相关推荐

  • 初识linux

    Linux 是什么?2014年之前我都没有听说过linux。 简单来说,Linux是一种操作系统,我们知道Windows吧,Linux也是一种操作系统。 特性: (1)字符界面(当然现在也有图形界面了) (2)一切皆文件 (3)许多小工具程序组合 Linux脱胎于Unix,Unix是由贝尔实验开发的。符合posix 标准,Unix系统上面的应用程序大部分可以…

    Linux干货 2016-06-01
  • linux 文件权限以及用户策略 讲解

     linux 文件权限以及用户策略 讲解    由于linux系统是一个多用户使用的系统,对于各个用户指定的文件或目录必须存在一套管理系统,以防止多用户对相同文件的混淆使用。于是催生出了linux系统文件的用户权限设置。其存在的意义就是每一个文件或目录对于不同的用户区分读取,写入,执行三种权限,即:r,w,x。下面将详…

    Linux干货 2016-08-05
  • 我在马哥的学习生涯开始

    我的人生工作目标:年薪百万不是梦!

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

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

    Linux干货 2016-07-22
  • 0806文本处理工具

    ———- 文件查看工具 ———- cat:    cat [OPTION]… [FILE]…   //查看文本文件内容,一般后面跟文件名(相对路径),或者是文件名(绝对路径) -n 加行号 -b 加行号,…

    Linux干货 2016-08-07
  • yum安装 源码安装实例

     yum安装 源码安装实例 §·源码安装 http 2.2.29实例 1     1.下载源码包。 1     2.配置系统需要的编译环境。 2     3 ./configure ; make  ;…

    Linux干货 2016-08-24

评论列表(1条)

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

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