$0表示bash脚本的文件名
$1表示第一个参数
$*表示参数列表$0, $1, $2…
$@表示"$1"/"$2"...每个变量都是独立的,用双引号括起来
$#表示参数列表个数
$?表示上一条命令的执行结果
$!表示上一条命令的PID号
 
注意:
不被引用的$*每个单词被当成独立的单词
使用"$*"整个参数列表被当成一个参数
不引用的#@与$*一样
"$@"保留调用者的假设,引号内的作为一个参数,且保留空格
 
下面的脚本代码来对$*和$@来进行相应的测试
 #!/bin/bash

 # The differences between $* $@ "$*" "$@"

 echo Dollar star is $* # 空格未保留
echo "Dollar star in double quotes is $*" # 引号内的空格被保留
echo Dollar at is $@ # 空格未保留
echo "Dollar at in double quotes is $@" #引号的空格被保留 echo
echo "Looping through Dollar Star" # 不引用$* 每个单词被当成独立的单词
for i in $*
do
echo "Parameter is $i"
done echo
echo "Looping through Dollar Star with double quotes" # 使用"$*"整个参数列表被当成一个参数
for i in "$*"
do
echo "Parameter is $i"
done echo
echo "Looping through Dollar At" # 不引用的#@与$*一样
for i in $@
do
echo "Parameter is $i"
done echo
echo "Looping through Dollar At in double quotes" # "$@"保留调用者的假设,引号内的作为一个参数,且保留空格
for i in "$@"
do
echo "Parameter is $i"
done

运行命令:

bash 01defaultParam.sh  "hello world" two

执行结果:

Dollar star is hello world two
Dollar star in double quotes is hello world two
Dollar at is hello world two
Dollar at in double quotes is hello world two
 
Looping through Dollar Star
Parameter is hello
Parameter is world
Parameter is two
 
Looping through Dollar Star with double quotes
Parameter is hello world two
 
Looping through Dollar At
Parameter is hello
Parameter is world
Parameter is two
 
Looping through Dollar At in double quotes
Parameter is hello world
Parameter is two

对应新浪博客地址:http://blog.sina.com.cn/s/blog_6941438f0102v8qj.html

linux中预留的$变量的更多相关文章

  1. Linux中PATH环境变量的作用和使用方法

    关于PATH的作用:PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径.比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根 ...

  2. [转帖]Linux教程(20)- Linux中的Shell变量

    Linux教程(20)- Linux中的Shell变量 2018-08-24 11:30:16 钱婷婷 阅读数 37更多 分类专栏: Linux教程与操作 Linux教程与使用   版权声明:本文为博 ...

  3. Linux有问必答:如何在Linux中修改环境变量PATH

    提问: 当我试着运行一个程序时,它提示“command not found”. 但这个程序就在/usr/local/bin下.我该如何添加/usr/local/bin到我的PATH变量下,这样我就可以 ...

  4. Linux中的环境变量PATH

    一.介绍 在讲环境变量之前,先介绍一下命令which,它用于查找某个命令的绝对路径,示例如下: 在上面的示例中,用which查到rm命令的绝对路径为/usr/bin/rm. 那么问题来了:为什么我们使 ...

  5. Linux中配置环境变量

    Linux中环境变量的搭建(推荐用法) 第一步:进入到/etc/profile.d文件夹下 cd /etc/profile.d 第二步:创建并编辑一个my_env.sh文件 vim my_env.sh ...

  6. Linux中修改环境变量及生效方法

    在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”. 要让刚才的修改马上生 ...

  7. Linux中修改环境变量

    <1>Linux 的变量作用范围可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux ...

  8. 在Linux中设置php变量的方法

    默认情况下已经安装好了PHP环境,并且知道安装好后的PHP文件路径,然后可以通过以下的方式设置PHP变量,快速执行PHP命令运行PHP文件. 环境:centos 第一步:vi ~/.bash_prof ...

  9. linux中的环境变量

    linux中用到很多的环境变量的设置,这里推荐一个博客: http://www.cnblogs.com/mengyan/archive/2012/09/04/2669894.html

随机推荐

  1. Appium+Robotframework实现Android应用的自动化测试-6:一个简单的例子

    万事具备,只欠编码! 下面看一个简单的示例,这个示例验证Android手机自带的通讯录的添加联系人的操作是否成功.这个例子是Appium官网自带的示例,有兴趣的同学也可以自己下载来研究和学习,下载地址 ...

  2. Gitlab的Gravatar头像无法显示的问题

    通过gitlab搭建的git仓库,由于Gravatar被墙了,导致Gravatar头像无法显示.总觉得怪怪的. 社区版gitlab解决办法: vi /var/opt/gitlab/gitlab-rai ...

  3. iOS 小经验:UIAnimation空对象导致crash

    今天调试一个老程序,发现有时运行动画会crash,仔细检查了基本的内存管理,发现都没问题!后来发现了问题,这个程序用的是下面的代码 [self performSelectorInBackground: ...

  4. ePass.CreateFile

    javascript和vbscript中没有结构体Struct,ePass的ActiveX对象中把各个参数都展开了,官方文档只给出了对应的代码,没有给出相应的数字,示例代码中却都是数字,其VC代码中有 ...

  5. 让最新官方编译的 ffmpeg 在 XP 上 跑起来

    下载 fix-ffmpeg-bin.7z , 解压到 ffmpeg 的 bin 目录下, 运行 fixff.cmd 即可. fix-ffmpeg-bin.7z FT ft[]={ {"_wf ...

  6. Django~queries

    API queries create, retrieve, update and delete

  7. linux线程的实现

    首先从OS设计原理上阐明三种线程:内核线程.轻量级进程.用户线程 内核线程 内核线程就是内核的分身,一个分身可以处理一件特定事情.这在处理异步事件如异步IO时特别有用.内核线程的使用是廉价的,唯一使用 ...

  8. KMP单模快速字符串匹配算法

    KMP算法是由Knuth,Morris,Pratt共同提出的算法,专门用来解决模式串的匹配,无论目标序列和模式串是什么样子的,都可以在线性时间内完成,而且也不会发生退化,是一个非常优秀的算法,时间复杂 ...

  9. 自定义tld标签,页面使用

    背景需求: 系统本身的session不能在页面使用 如下: controller: @RequestMapping(method=RequestMethod.GET) public String ge ...

  10. WinForm轻松实现自定义分页 (转载)

    转载至http://xuzhihong1987.blog.163.com/blog/static/267315872011315114240140/ 以前都是做web开发,最近接触了下WinForm, ...