bash - 在 bash 脚本 if 语句中使用 ${ }

标签 bash unix

bash 脚本的新手。在 bash 脚本的开头,一个变量被初始化

silent_install=true

然后这个变量在脚本中有以下2种方式使用

if [ -z "$silent_install" ]; then

if [ -z ${silent_install} ]; then

这两种用法有什么区别?

最佳答案

简短:第二个是错误的。

错误,因为未加引号的变量将被分词。如果变量包含空格,测试将失败。

{} 没有区别,您可以使用或不使用它们,带引号或不带引号。但是,通常我会建议使用它们。特别是如果你像 "$foo_bar" 那样插入它们。这里的变量名是什么? "${foo}_bar" 干净多了。

因此我会使用:

if [ -z "${silent_install}" ] ; then

关于bash - 在 bash 脚本 if 语句中使用 ${ },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671520/

相关文章:

shell - 在 KornShell 脚本中获取函数名称

arrays - 如何从数组中读取前n个元素

linux - 如何将脚本调用添加到 linux 命令?

linux - EXT4 上的时间戳精度(亚毫秒)

linux - Bash:字符串操作在空格处终止

c++ - UNIX:UNIX 中的堆栈大小 (ulimit -s) 应该是多少?

bash - 将段错误消息从 C++ 程序重定向到文件

bash - 别名在 Bash 脚本中不起作用

linux - 为什么 if [ !$(grep -q) ] 不起作用而 if grep -q 起作用?

unix - 是否可以在 Bash 中禁用命令替换?