Linux变量之$#, $*, $@含义

一、介绍

$#   //是传给脚本的参数个数
$ //是脚本本身的名字
$1 //是传递给该shell脚本的第一个参数
$ //是传递给该shell脚本的第二个参数
$@ //是传给脚本的所有参数的列表
$* //是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ //是脚本运行的当前进程ID号
$? //是显示最后命令的退出状态,0表示没有错误,其他表示有错误
$! //Shell最后运行的后台Process的PID
‘@’ 和 ‘*’ 的区别:
  相同点:都是引用所有参数。
  不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在1 2 3)则"*" 等价于 “1 2 3"(传递了一个参数);而“@" 等价于 “1” "2” "3"(传递了三个参数)。
 

二、示例

##dels.sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"

执行结果:

[@jihite]$ sh del.sh
number:
scname:del.sh
first:
second:
argume:
show parm list:
show process id:
show precomm stat:

随机推荐

  1. 错误代码: 1247 Reference 'startTime' not supported (forward reference in item list)

    1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:SELECT a.createUserId AS typeId, (SELE ...

  2. The struts dispatcher cannot be found

    1.错误描述 严重:Servlet.service() for servlet jsp threw exception The struts dispatcher cannot be found.Th ...

  3. CentOS中配置SoftWareRaid磁盘冗余阵列

    (以vmware workstation为例) 1.关机添加一块硬盘 2.使用fdisk -l 可以看到 /dev/sdb硬盘设备 3.fdisk /dev/sdb配置磁盘分区,准备4个磁盘分区,用于 ...

  4. 指针数组与带参main函数

    (一)指针数组 指针数组就是每一个元素存放一个地址,相当于一个指针变量.如:int *p[4]指针数组比较适合用来指向若干字符串,使得处理字符串更加灵活.例如,现在要将若干字符串按字母顺序由小到大输出 ...

  5. Keras常见问题及解答

    Keras官方中文版文档 如何引用 Keras? 如何在 GPU 上运行 Keras? 如何在多 GPU 上运行 Keras 模型? "sample", "batch&q ...

  6. [HAOI2010]软件安装

    简单的tarjan+(本蒟蒻刚刚接触不久)恶心的树形DP 题面 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为 ...

  7. 从 HelloWorld 看 Java 字节码文件结构

    很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个 Java 代码背后到底是什么.今天就让我们从一个最简单的 Hello World 开始看一看 Java 的类文件结构. 在开始之前,我们 ...

  8. js监听input输入框值的实时变化实例

    情景:监听input输入框值的实时变化实例 解决方法:1.在元素上同时绑定oninput和onporpertychanger事件 实例:<script type="text/JavaS ...

  9. SQL基础教程读书笔记-3

    5 复杂查询 5.1 视图 1.表和视图的区别表:保存的是实际的数据视图:保存的是SELECT语句.从视图读取数据时,视图会在内部执行该SELECT语句并创建出一张临时表. 2.视图的优点① 无需保存 ...

  10. java如何输入数据

    Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代 ...