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 文 本 处 理 工 具 一.学习大纲: ◎各种文本工具来查看、分析、统计文本文件 文件内容查看工具:cat, tac,rev,more,less 文件截取:head和tail 按列抽取:cut,paste 分析文本的工具:wc , sort , uniq,diff和patch 命令使用练习题 ◎文本过滤与处理工具: grep与正则表达式…

    Linux干货 2016-08-05
  • 压缩、解压缩和归档工具

    1  compress和uncompress 用法:     compress [-dfvcVr] [-b maxbits] [file…] 选项:     -d   解压缩     -c   结果…

    Linux干货 2016-08-18
  • 【26期】Linux第二周学习小总结

    关于用户组的一些小小的整理     本周学习很多的知识,一些文件管理的技巧和命令,重定向和管道的实用技巧和拓展,最后则是到了我们的用户组的权限和管理,既然说到了管理,我们都知道在Linux中,老师讲的最多的一句话就是一切皆文件,既然是文件就会有用户去用,在里面进行各种的操作,比如增删改查啊,对文件的重新定义啊,那我们就…

    2017-07-21
  • Centos图形界面和命令界面模式切换

    大家都知道,centos有两种用户界面模式,一种是图形界面,也就是我们常说的Xwindows界面;另一种就是命令界面。有时因为方便需要在图形模式下安装一些程序,因图形界面占用的内存等资源较大,影响系统的运行,安装完后需要把系统切换到命令模式下运行,下面就两种模式如何进行切换做一下说明。 CentOS的启动模式共分为7级,分别是: 0-  停机 1-…

    系统运维 2015-07-19
  • Linux基础知识点(一)

    此篇博客只是记录第一周未掌握或不熟悉的知识点,用来加深印象。

    2018-03-13
  • 第七周练习

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;   ~]# mke2fs -t ext4 -b 2048 -m 2 -L…

    Linux干货 2016-12-10

评论列表(1条)

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

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