注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

随机过程

http://superware.blog.163.com

 
 
 

日志

 
 

Shell parameters  

2014-11-06 21:49:16|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

变量说明:
$$ -- Shell本身的PID(ProcessID)
$! -- Shell最后运行的后台Process的PID
$? -- 最后运行的命令的结束代码(返回值)
$- -- 使用Set命令设定的Flag一览
$* -- 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@ -- 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$# -- 添加到Shell的参数个数
$0 -- Shell本身的文件名
$1~$n -- 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

例如:

#!/bin/bash


#

# File name : parameter.sh

# testing the shell parameters

#


echo '$- is' "$-"
echo '$$ is' "$$"
echo '$! is' "$!"
echo '$? is' "$?"
echo '$* is' "$*"
echo '$@ is' "$@"
echo '$# is' "$#"
echo '$0 is' "$0"
echo '$1 is' "$1"
echo '$2 is' "$2"

运行:

$ chmod 755 parameter.sh

$ ./parameter.sh A B C

$- is hB
$$ is 11089
$! is
$? is 0
$* is A B C
$@ is A B C
$# is 3
$0 is ./parameter.sh
$1 is A
$2 is B


由上可知,$* 和 $@ 都是传递所有参数,但意义有区别。由于传递的参数都保存在 $0 ... $n 中,它们的区别在于:

"$*" -- 只传递一个参数 "$1 $2 $3 ... $n"

"$@" -- 传递 n 个参数 "$1", "$2", "$3", ... "$n"

也就是说,$* 传递的是变量,而 $@ 传递的是变量列表。
  评论这张
 
阅读(69)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017