变量说明: 
$$ 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. 微信小程序多张图片上传

    微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个个api ...

  2. map,zip,reduce函数

    lt=range(5,10) lw=range(8,13) def mul(a,b): return a*b def mul_list(param1,param2): return_list=[] f ...

  3. Unexpected end of input 和 Unexpected token var 和 Unexpected token ;

    在写jsp的时候使用的一段代码一直调试,出现Unexpected token ; 错误. 所以最后把代码各种精简,得到了如下的测试示例代码 <% String aaa="123&quo ...

  4. centOS下服务启动

    nginx应该在mongodb之后启动,也可以通过chkconfig <服务名> on将服务设置为开机自启动.具体命令如下 service mysql start service memc ...

  5. [1] Report Fusioncharts

    图形报表之fusioncharts  

  6. 高性能队列Disruptor系列2--浅析Disruptor

    1. Disruptor简单介绍 Disruptor是一个由LMAX开源的Java并发框架.LMAX是一种新型零售金融交易平台,这个系统是建立在 JVM 平台上,核心是一个业务逻辑处理器,它能够在一个 ...

  7. 总结·CSS3中定位模型之position属性的使用方法

    一.position元素介绍 position属性规定了元素的定位类型,通过定位,可准确地定义元素相对于其正常位置而应该出现的位置,或者是相对于父元素.另一元素和浏览器窗口等的位置. position ...

  8. .NET Framework 各个版本介绍

    .NET Framework 1.1 自1.0版本以来的改进:自带了对mobile asp .net控件的支持.这在1.0版本是以附加功能方式实现的,现在已经集成到框架的内部.安全方面的变更 - 使得 ...

  9. vue-resource promise兼容性问题

    背景 其实这个问题在之前的项目开发中就出现过,但是当初只解决问题了,并没有针对问题作总结:于是乎今天踩到了自己埋的坑,所以决定记录一下.那么到底是什么问题呢?就是"在安卓低版本,如果你在vu ...

  10. arcgis api for js入门开发系列十叠加SHP图层

    上一篇实现了demo的热力图,本篇新增叠加SHP图层,截图如下: 叠加SHP图层效果实现的思路如下:利用封装的js文件,直接读取shp图层,然后转换geojson,最后通过arcgis api来解析转 ...