变量说明:
 
$$     #Shell本身的PID(ProcessID)
$!     #Shell最后运行的后台Process的PID
$?     #最后运行的命令的结束代码(返回值)
$-     #使用Set命令设定的Flag一览
$*     #所有参数列表。如'$*'用「'」括起来的情况、以'$1 $2 … $n'的形式输出所有参数
$@     #所有参数列表。如'$@'用「'」括起来的情况、以'$1' '$2' … '$n' 的形式输出所有参数
$#     #添加到Shell的参数个数
$0     #Shell本身的文件名
$1~$n #添加到Shell的各参数值。$1是第1参数、$2是第2参数……
 
 
我们先写一个简单的脚本,执行以后再解释各个变量的意义
 
# touch variable
 
脚本内容如下:
 
# vim variable
#!/bin/bash
echo 'number:$#'
echo 'scname:$0'
echo 'first :$1'
echo 'second:$2'
echo 'argume:$@'
 
保存退出

赋予脚本执行权限
执行脚本
# chmod +x variable
 
# ./variable aa bb
number:2
scname:./variable
first: aa
second:bb
argume:aa bb
 
 
通过显示结果可以看到:

$# 是传给脚本的参数个数

$0 是脚本本身的名字

$1是传递给该shell脚本的第一个参数

$2是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表

随机推荐

  1. Slider滑动条

    Slider的Value Changed事件一般与Label结合让其显示数值 int mySlider = (int)sender.value; self.sliderLabel.text = [NS ...

  2. Android xml资源文件中@、@android:type、@*、?、@+含义和区别

    一.@代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@andr ...

  3. C# WinForm开发系列 - DataGridView

    1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHe ...

  4. fetch 关于七牛的content-type 的问题

    七牛要的Content-Type: multipart/form-data; boundary=<frontier>:那个boundary(formdata分隔符)是浏览器自己加的,不用管 ...

  5. js仿微信语音播放

    html结构如下: <div class="app-voice-you" voiceSrc="xx.mp3"> <img class=&quo ...

  6. js禁止Backspace键使浏览器后退

    在项目中遇到按下Backspace键让浏览器后退的问题,上网搜了几种解决方案都不太理想.于是集众人之智,采众家之长,归纳如下: 这里主要参考博客http://q821424508.iteye.com/ ...

  7. socket初始

    一.概述 socket,套接字. 套接字是一种源IP地址和目的IP地址以及源端口号和目的端口号的组合.网络化的应用程序在开始任何通讯之前都必须要创建套接字.就像电话的插口一样,没有它就没办法通讯.   ...

  8. Linux手绑IP

    修改配置文件vim /etc/sysconfig/network-scripts/ifcfg-eth0 注释dhcp#BOOTPROTO="dhcp" 注释ipv6#IPV6INI ...

  9. jdbc连接mysql

    package june25jdbcTest; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Res ...

  10. Uva 1630 折叠串

    题目链接:https://uva.onlinejudge.org/external/16/1630.pdf 题意:折叠串,给一个字符串,相同部分可以折叠,折叠可以嵌套.求最短长度的一种折叠方法.括号和 ...