无法在 bash 中打印带括号的字符串

  • 本文关键字:字符串 打印 bash bash
  • 更新时间 :
  • 英文 :


试图在bash脚本中打印字符串,但它一直在我身上不断变化。

$> /usr/local/bin/bash --version
GNU bash, version 4.3.33(1)-release (x86_64-apple-darwin14.1.0)

这是三种简单的脚本,只有一种不起作用,我期望

将按预期

打印role[ba]
#!/usr/local/bin/bash
default="role[ba]"     
echo $default
exit 1

打印 roles而不是 role[bas] >?

#!/usr/local/bin/bash
default="role[bas]"     
echo $default
exit 1

按预期

打印role[foo]
#!/usr/local/bin/bash
default="role[foo]"     
echo $default
exit 1

我对bash不了解,为什么不能在其中打印带有 role[bas]的字符串?

$ touch roles
$ echo role[abc]
role[abc]
$ echo role[rst]
roles
$ echo role[foo]

[]是Shell Globing语法(字符类)的一部分。如果您不希望Globbing发生,请引用您的变量。同样,如果您不想要单词分裂。本质上,始终引用您的变量,除非您有理由不这样做。

so:

echo "$default"

相关内容

  • 没有找到相关文章

最新更新