bash:引号中的变量和引号

时间:2012-06-21 18:54:38

标签: bash variables escaping quotes

我想在bash中设置一个名为test_var的变量 基本上,我想要echo test_var输出:

%let output="file_20120601.csv";

其中20120601是变量。我试图通过使用:

来做到这一点
test_var='%let output="file_$1.csv";'
echo test_var

这不起作用,因为$ 1不被解释为变量,而是被解释为字面上的$ 1

有人知道如何修改它以使其按照我的意愿去做吗?

2 个答案:

答案 0 :(得分:4)

由于单引号,它无法正常工作。他们把一切都写成了文字。

$ var='123'
$ foo="\"%hi there file_$var\""

$ echo $foo
"%hi there file_123"

答案 1 :(得分:0)

这也有效

test_var='%let output="file_'"$1"'.csv";'

因为变量不会在单引号之间展开。 我们可以在单引号和双引号之间连接字符串,只需在旁边写字符串。