文章首发于【陈树义的博客园】,点击跳转到原文:https://www.cnblogs.com/chanshuyi/p/quick_start_of_shell_07_variable.html
因为 Shell 语言是一门弱语言类型,所以变量可以无须定义便可直接使用。在 Shell 语言中,引用变量有几种方式。
第一种,直接使用 $ 符号引用。
str="Hello"
echo $str //Hello
第二种,使用 ${} 符号引用。
str="Hello"
echo ${str} //Hello
一般来说,如果不会引起变量的阅读困难,那么可以使用第一种变量引用方式。但如果在较为复杂的环境,会引起阅读和理解困难,那还是使用第二种引用方式。例如:
#!/bin/sh
echo "What is your name?"
read USER_NAME
echo "Hello $USER_NAME"
echo "I have create an email $USER_NAME@gmail.com for you"
上面的例子非常简单,输入你的名字,为你创建一个邮箱。虽然上面的例子能正常运行,但是却不易阅读。特别最后一行,你需要很仔细端详,才知道原来是引用了$USER_NAME
这个变量,而不是引用了$USER_NAME@gmail.com
这个变量。在这种情况下,使用花括号来引用变量是更为合适的:
#!/bin/sh
echo "What is your name?"
read USER_NAME
echo "Hello $USER_NAME"
echo "I have create an email ${USER_NAME}@gmail.com for you"
虽然说我们可以加上大括号,或者不加,但是业界统一的规范还是加上大括号。因为这样比较统一,便于阅读。因此树义也建议大家使用第二种方式,即使用加上大括号的方式。