变量说明: 
$$ Shell本身的PID(ProcessID) 
$! Shell最后运行的后台Process的PID 
$? 最后运行的命令的结束代码(返回值) 
$- 使用Set命令设定的Flag一览 
$* 所有参数列表。 所有的参数被认为是一个字符串
$@ 所有参数列表。参数是独立的字符串
$# 添加到Shell的参数个数 
$0 Shell本身的文件名 
$1~$n 添加到Shell的各参数值。$1是第1个参数、$2是第2个参数…。

通过一个脚本,来看看各个变量的效果

 #!/bin/sh

 ## RustFisher

 echo "----------------------"
 echo "PID:            \$$  $$"
 echo "option numbers: \$#  $#"
 echo "last return:    \$?  $?"
 echo "all parameters: \$*  $*"
 echo "all parameters: \$@  $@"
 echo "file name:      \$0  $0"
 echo "1st param:      \$1  $1"
 echo "2nd param:      \$2  $2"
 echo "3rd param:      \$3  $3"
 echo "4th param:      \$4  $4"
 echo "9th parem:      \$9  $9"
 echo "-----------------------"

 index=

 echo "get args by \"\$@\":"

 for arg in "$@"
 do
 echo "Arg #$index=$arg"
 let "index+=1"
 done

 echo "-----------------------"

 index=

 echo "get args by \"\$*\":"

 for arg in "$*"
 do
 echo "Arg #$index=$arg"
 done

 echo "-----------------------"

输出结果:

$ sh show.sh dont "worry be" happy
----------------------
PID:            $$
option numbers: $#  

all parameters: $*  dont worry be happy
all parameters: $@  dont worry be happy
  show.sh
1st param:      $  dont
2nd param:      $  worry be
3rd param:      $  happy
4th param:      $
9th parem:      $
-----------------------
get args by "$@":
Arg #=dont
Arg #=worry be
Arg #=happy
-----------------------
get args by "$*":
Arg #=dont worry be happy
-----------------------

随机推荐

  1. div的替代品

    人们在标签使用中最常见到的错误之一就是随意将HTML5的<section>等价于<div>--具体地说,就是直接用作替代品(用于样式).在XHTML或者HTML4中,我们常看到 ...

  2. PHP版本替换, phpinfo和php -v显示版本信息不一致

    环境:OS X EI Capitan 10.11 & lnmp 背景: 1想将lamp(xampp安装的,php5.2)换成 lnmp(php7.0)   2php5.2卸载(xampp卸载& ...

  3. nginx安装文档

    1.   安装依赖包 yum -y install pcre-devel yum -y install openssl-devel yum -y install gcc yum -y install ...

  4. oracle日期时间函数 总结

    表中存在伪列:sysdate,systimestamp 伪列存在但是不显示 select sysdate from dual; select systimestamp from dual; 日期计算公 ...

  5. Ubuntu安装搜狗拼音和金山快盘

    搜狗拼音和金山快盘是UbuntuKylin中的特色中文应用,通过下述方法在Ubuntu或UbuntuKylin中安装. 一.更新Fcitx 1.由于 Ubuntu 12.04自带的 小企鹅输入法Fci ...

  6. Zookeeper:分布式程序的基石

    一.目录 1.zookeeper是什么? 2.安装.配置.启动.监控 3.javaApi基础用法 4.应用场景 5.CAP理论/paxos算法 二.zookeeper简介 官方版:zookeeper是 ...

  7. 9.如何解决出现AXIOS的Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

    问题描述: 由于restful接口需要在头部header传递两个字段: Content-Type: application/jsonAccess-Token: 84c6635800b14e0eba4f ...

  8. 【知识整理】这可能是最好的RxJava 2.x 教程(完结版)

    为什么要学 RxJava? 提升开发效率,降低维护成本一直是开发团队永恒不变的宗旨.近两年来国内的技术圈子中越来越多的开始提及 RxJava ,越来越多的应用和面试中都会有 RxJava ,而就目前的 ...

  9. 富文本编辑器嵌入指定html代码

    先把内容放入一个input中 <input id="detail" type="hidden" value="${sysCarousel.det ...

  10. 数据库--释放mysql数据库资源

    背景 nikeodong之前做了项目的数据库主从,在全备的过程发现数据库是越来越大了:最后发现是资源不释放的问题. 目的 为了解决mysql资源不释放的问题. 步骤 1.vim /etc/my.cnf ...