首页 > 系统服务 > 详细

linux中预留的$变量

时间:2014-10-23 16:03:01      阅读:244      评论:0      收藏:0      [点我收藏+]
$0表示bash脚本的文件名
$1表示第一个参数
$*表示参数列表$0, $1, $2…
$@表示"$1"/"$2"...每个变量都是独立的,用双引号括起来
$#表示参数列表个数
$?表示上一条命令的执行结果
$!表示上一条命令的PID号
 
注意:
不被引用的$*每个单词被当成独立的单词
使用"$*"整个参数列表被当成一个参数
不引用的#@与$*一样
"$@"保留调用者的假设,引号内的作为一个参数,且保留空格
 
下面的脚本代码来对$*和$@来进行相应的测试
 1 #!/bin/bash
 2 
 3 # The differences between $* $@ "$*" "$@"
 4 
 5 echo Dollar star is $* # 空格未保留
 6 echo "Dollar star in double quotes is $*" # 引号内的空格被保留
 7 echo Dollar at is $@ # 空格未保留
 8 echo "Dollar at in double quotes is $@" #引号的空格被保留
 9 
10 echo
11 echo "Looping through Dollar Star" # 不引用$* 每个单词被当成独立的单词
12 for i in $*
13 do
14         echo "Parameter is $i"
15 done
16 
17 echo
18 echo "Looping through Dollar Star with double quotes" # 使用"$*"整个参数列表被当成一个参数
19 for i in "$*"
20 do
21         echo "Parameter is $i"
22 done
23 
24 echo
25 echo "Looping through Dollar At" # 不引用的#@与$*一样
26 for i in $@
27 do
28         echo "Parameter is $i"
29 done
30 
31 echo
32 echo "Looping through Dollar At in double quotes" # "$@"保留调用者的假设,引号内的作为一个参数,且保留空格
33 for i in "$@"
34 do
35         echo "Parameter is $i"
36 done

运行命令:

bash 01defaultParam.sh  "hello world" two

执行结果:

Dollar star is hello world two
Dollar star in double quotes is hello world two
Dollar at is hello world two
Dollar at in double quotes is hello world two
 
Looping through Dollar Star
Parameter is hello
Parameter is world
Parameter is two
 
Looping through Dollar Star with double quotes
Parameter is hello world two
 
Looping through Dollar At
Parameter is hello
Parameter is world
Parameter is two
 
Looping through Dollar At in double quotes
Parameter is hello world
Parameter is two

对应新浪博客地址:http://blog.sina.com.cn/s/blog_6941438f0102v8qj.html 

linux中预留的$变量

原文:http://www.cnblogs.com/fengxm/p/4045741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!