在linux系统中有很多的特殊符号,他们具有特殊的意义

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

$0 是脚本本身的名字

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

$2 是传递给该shell的第二个参数

$@ 是传递给脚本的所有参数的列表

$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

$$ 是脚本运行的当前进程ID号

$?是显示最后命令退出的状态,0表示没有错误,其他表示有错误

例子:

#!/bin/bash
echo "param num:$#"
echo "sh name is :$0"
echo "The first param is :$1"
echo "The second param is :$2"
echo "The all param list is :$@"
echo "The all param str is :$*"
echo "The PID is:$$"
echo "The precomm stat is:$?"

执行结果:

$@与$*的区别:$*把参数作为一个字符串整体(单字符串)返回,$@把每个参数作为一个字符串返回

随机推荐

  1. Eclipse 汉化的和修改字体的方法

    先进入 http://www.eclipse.org/babel/downloads.php 找到自己对应版本的网址,然后复制下来. 然后,进入eclipse.点工具栏上的Help - Install ...

  2. 虚拟机内存复用技术的比较(XEN系统)

    技术途径 业界就该问题定义为虚拟机内存复用(复用干嘛? 当然是为了跑更多的虚拟机呀!) :memory overcommit.围绕次问题主要有4种技术手段,下面简要介绍和分析: 1 气泡驱动(ball ...

  3. dockerfile介绍

    详细说明,阅读这篇文章吧:https://yeasy.gitbooks.io/docker_practice/image/build.html 注意点: 容器是一个进程,不是一个系统 dockerfi ...

  4. NoSQL数据存储

    些数据库并不是关系型的,不支持 SQL.它们用来处理庞大的数据集.支持更加灵活的 数据定义以及定制的数据操作.这些被统称为 NoSQL(not only SQL) . dbm family dbm格式 ...

  5. sda, sdb, sdc, sda1, sda2在Linux中都代表什么

    意义如下: 第一个软驱 /dev/fd0. 第二个软驱 /dev/fd1. 第一块硬盘 /dev/sda. 第二块硬盘 /dev/sdb, 以此类推. 第一个SCSI CD-ROM /dev/scd0 ...

  6. iOS开发-16进制颜色转换

    项目中经常会用到颜色转换,有的是通过十六进制转成数字转颜色,想简单的点直接通过字符串转一下,简单扩展了一下分类UIColor,代码如下: +(UIColor *)colorWithHex:(NSStr ...

  7. CentOS 6和CentOS 7防火墙的关闭

    CentOS6.5查看防火墙的状态: 1 [linuxidc@localhost ~]$service iptable status 显示结果: 1 2 3 4 5 [linuxidc@localho ...

  8. 10 个非常有用的 SVG 动画的 JavaScript 库

    SVG 通常可以用作跨分辨率视频.这意味着在一块高分屏幕上不会降低图片的锐度.此外,你甚至可以让SVG动起来,通过使用一些javascript类库.下面,我们分享一些javascript类库,这些类库 ...

  9. 为Subline Text 3 添加支持ini文件语法高亮

    转: http://lancelot.blog.51cto.com/393579/1783653 在Subline text 官网下载了Subline text 3 .不过发现没有对ini格式文件的语 ...

  10. 解决webstom failed to change read-only files

    我百思不得其解的是,为何我的文件不让我更改,变成了只读模式,后来我仔细回忆了一下,原来是因为我使用了root权限,来安装thinkjs之后,webstom没有root权限,所以我使用root,在终端敲 ...