20.1 Shell 变量 (从新手到菜鸟的Linux教程)
刚才看了一眼 bash
的文档,真的是被文档的详尽吓到了= =
唔,那么先从变量的使用入手吧。
要定义变量的话,直接使用这种语法
name=[value]
根据文档,如果 value
没有给出,默认 name
是空字符串。
使用变量的话要加美元符 $
搞得和 php 一样满屏幕是 dollars
length=10
echo $length #> 10
echo ${length} #> 10
唔,这边可能会造成一种理解是 length
作为参数传给了 echo
;这样不是很准确,应该说是 $length
或者 ${length}
被 bash 解释为 10
然后才作为参数传给 echo
。举个例子验证这一点的话
length=10
$length #> 10: command not found
经常因为忘了 echo
出现找不到命令的提示就很尴尬了。
加 $
和不加有什么区别呢?区别在于不加的话 bash 会把 $
之后的单词(即最长未包含空白字符的字符串)视为变量,于是不加的话可能会造成歧义
length=10
echo The bridge is $lengthkm long. #> The bridge is long.
echo The bridge is ${length}km long. #> The bridge is 10km long.
代码高亮也提示你们了吧。
要删除变量用内置命令 unset
unset name
然鹅(除了数组以外)删掉一个变量和赋给它空串有什么区别……反正弱类型……
刚才把脚本输入测试的时候懒得开 vim (我是有多懒),直接用 heredoc ,结果所有 $ 和变量名全被解释了 气哭 不知道是不是一个好的特性。