本文共 1519 字,大约阅读时间需要 5 分钟。
有关环境变量,详见
test=123 #局部环境变量一般用小写export TEST=123 #全局环境变量一般用大写export MYNAME='XIAO BA WU' #变量值有空格,要用单引号围起来export test #也可以这样把前面的局部变量导出到全局local functest #函数体内变量定义使用local关键字,可以将作用域限制在函数体内
$
来引用变量名获取其值。而当变量名作为右值时,系统可以直接判定其为变量,无需添加$
value1=value2 //value1的值为字符串"value2"value1=$value2 //value1的值为value2的值
name=123name1=456echo hah! hah! $name1 #打印name1的值echo hah! hah! $name11 #打印name11的值(空值)echo hah! hah! ${name}11 #打印name的值
name='aa bb cc d'name=$name'd ee'name+='d ee' #这种形式的接续操作很常见
$
在shell中是关键字,如果要在字符串中单纯显示$
符号,必须加\
。
shell中,我们可以使用反引号` (就是键盘上~所处的键),来将命令的返回值赋给变量,如:
PATH=`pwd`
platforms=( "android""linux")
$0
是第0个参数,恒定为本脚本/程序的名字; $1
是第一个参数 ,$2
是第二个参数 ,以此类推。。。$#
代表了输入参数的个数(不包括恒定的参数$0
)$*
是所有参数的总集,作为单个的参数。而 $@
也是所有参数的总集,但将它们作为数组,假设现在传入参数1 2 3 4
,$*
相当于"1 2 3 4"
,$@
相当于("1" "2" "3" "4")
$3
移到$2
,$2
移到 $1
, $1
被删除,$0
永远不被。在不知道参数个数时,shift命令常用来遍历参数,我们可以只操作第一个参数,操作完后执行shift,然后继续操作第一个参数$?
来获取上条执行命令的返回值exit var
,var可以是我们指定的脚本退出时的返回值转载地址:http://qpvin.baihongyu.com/