我正在尝试以下脚本:
#!/bin/bash
printf "Hello, this is a demo of brace expansion\n"
echo "Hello to each one of t{i,a,o}k"
输出:
$ ./hello.sh
Hello, this is a demo of brace expansion
Hello to each one of t{i,a,o}k
为什么?
使用
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
答案1
双引号抑制括号扩展:
$ echo Hello t{i,a,o}k
Hello tik tak tok
$ echo "Hello t{i,a,o}k"
Hello t{i,a,o}k
您可以引用表达式的其余部分。可能有用的是,如果您引用括号部分之前的空格,它会停止分词,因此您会得到类似以下内容:
$ echo "Hello "t{i,a,o}k
Hello tik Hello tak Hello tok