变量定义
概念
变量的名字就是变量保存值的地方。引用变量的值就叫做变量替换。
如果 variable 是一个变量的名字,那么 $variable
就是引用这个变量的值,即这变量所包含的数据。
$variable
事实上只是 ${variable}
的简写形式。在某些上下文中 $variable
可能会引起错误,这时候你就需要用 ${variable}
了。
定义变量
定义变量时,变量名不加美元符号($
,PHP 语言中变量需要),如:
myname="shiyanlou"
注意
变量名和等号之间不能有空格。同时,变量名的命名须遵循如下规则:
- 首个字符必须为字母(a-z,A-Z)。
- 中间不能有空格,可以使用下划线(
_
)。 - 不能使用标点符号。
- 不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。
除了直接赋值,还可以用语句给变量赋值,如:
for file in `ls /etc`
使用变量
变量名前加美元符号,如:
myname="shiyanlou"
echo $myname
echo ${myname}
echo ${myname}Good
echo $mynameGood
myname="miao"
echo ${myname}
加花括号帮助解释器识别变量的边界,若不加,解释器会把 mynameGood 当成一个变量(值为空)
推荐给所有变量加花括号
已定义的变量可以重新被定义
只读变量
使用 readonly
命令可以将变量定义为只读变量,只读变量的值不能被改变。 下面的例子尝试更改只读变量,结果报错:
#!/bin/bash
myUrl="http://www.shiyanlou.com"
readonly myUrl
myUrl="http://www.shiyanlou.com"
运行脚本,结果如下: