逃脱美元符号和大括号在bash

时间:2014-09-22 14:04:41

标签: bash shell escaping

我制作了一个需要将$ {somestring}写入文件的脚本。 我想这样做的方法是逃避美元符号,但是当它执行时,字符串最终为空。

有没有办法正确逃避这个?

我的代码:

# \$\{somestring\} works, but leaves the \'s which I don't want.
myvar=("Yes I require multiple lines.
    Test \${somestring} test"); 

echo "$myvar" >> "mytest.conf";

1 个答案:

答案 0 :(得分:9)

只需使用单引号即可解释${}

$ myvar=5
$ echo 'this is ${myvar}'
this is ${myvar}
$ echo "this is ${myvar}"
this is 5

但请注意,您的方法是有效的(至少对我来说是Bash):

$ myvar=("Yes I require multiple lines.
  test \${somestring} test");
$ echo "$myvar" > a
$ cat a
Yes I require multiple lines.
  test ${somestring} test