在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. Tmux教程

    常用命令如下: (Ctrl+B) + (Shift+5) 打开一个新窗口 (Ctrl+B) + right/left 在不同窗口之间切换 (Ctrl+B) + [ 或 ] 进入复制模式,查看历史记录 ...

  2. [转]在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境

    FROM : http://www.cnblogs.com/eleganthqy/archive/2010/02/28/1675217.html 最近转向到了使用ubuntu做桌面,安装好系统以来一直 ...

  3. git别名;git配置使用shell函数;git别名使用shell函数;git获取当前分支;git alias

    获取当前分支 git symbolic-ref -q --short HEAD 2. 在git别名里使用shell函数,$1获取第一个参数的值,$2……$n依次类推,根据自己习惯需要定制 3. 提交r ...

  4. java 常用集合list与Set、Map区别及适用场景总结

     转载请备注出自于:http://blog.csdn.net/qq_22118507/article/details/51576319                  list与Set.Map区别及 ...

  5. XlsToOra

    ylbtech-Miscellaneos:XlsToOra 1. 返回顶部 在没有安装Oracle客户端而又需要将Excel数据导入Oracle表中时,XlsToOra可以方便快捷的达到你的目的.  ...

  6. 数据库实例: STOREBOOK > 数据文件/退回字段/重做日志组|管理员

    ylbtech-Oracle:数据库实例: STOREBOOK  > 数据文件/退回字段/重做日志组|管理员 数据文件/退回字段/重做日志组|管理员 1. 数据库实例: STOREBOOK  & ...

  7. 会动的文字Marquee应用(转)

    想要做个滚动公告,看了网上的教程,无一不是很恐怖的场频啊java语言编制的JS,或者就是各种复杂,无意中发现了Marquee这东西,用了一下,很简单,只需两行代码,即可以实现很好的效果,特此分享一下. ...

  8. LeetCode 总结

    LeetCode 方法详解

  9. Recover Binary Search Tree leetcode java

    题目: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without chan ...

  10. Laravel学习笔记之Session源码解析(下)

    说明:在中篇中学习了session的CRUD增删改查操作,本篇主要学习关闭session的相关源码.实际上,在Laravel5.3中关闭session主要包括两个过程:保存当前URL到session介 ...