linux shell变量$#,$@,$0,$1,$2的含义解释
变量说明:
$$ 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 -----------------------
随机推荐
- 一天搞定CSS: 清除浮动(float)--13
上一节已经说明了为什么要清除浮动了.这里我们就来解决浮动产生的各种问题. 为什么要清楚浮动? 地址:http://blog.csdn.net/baidu_37107022/article/detail ...
- Caffe代码分析--crop_layer.cu
因为要修改Caffe crop layer GPU部分的代码,现将自己对这部分GPU代码的理解总结一下,请大家多多指教! crop layer完成的功能(以matlab的方式表示):A(N,C,H,W ...
- 如何使用wait(), notify() and notifyAll() – Java
Java多线程是个很复杂的问题,尤其在多线程在任何给定的时间访问共享资源需要更加注意.Java 5引入了一些类比如BlockingQueue 和Executors 类提供了易于使用的API,避免了一些 ...
- 关于Iscroll.js 的滑动和Angular.js路由冲突问题
Iscroll主要应用于app移动端开发. 主要代码: window.onload=function(){ var myIscroll=new IScroll(".headerNav&quo ...
- su与sudo命令的区别
由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统. 如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作. 特别是对于服 ...
- 【Android Developers Training】 71. 显示翻牌动画
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Swift开发常用知识点
#pragma mark - as/类型转换as? / as! 需要根据前面的返回值决定 有?证明可选,可能为空:需要弱解包 没有?证明一定有值:大胆解包 as? 前面的结果是可选的 if let / ...
- EXT 结构解析
EXT Demo 结构解析 创建项目 sencha -sdk F:\lib\ext-6.0.0 generate app demo F:\demo 预览项目 执行命令 sencha app build ...
- 论MyBatis日志
Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具: SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging 具体选择哪个日志 ...
- Maven学习专题--Maven入门及安装
因为项目需要,新项目需要使用Maven开发,但是组内大部分没有接触过maven.我就毅然承担搭建maven环境的任务了.因为一切重头开始,就想把自己的整个搭建环境.项目创建.框架整合和模块管理整个过程 ...