bash:变量和引号中的引号

use*_*171 1 variables bash quotes escaping

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

%let output="file_20120601.csv";
Run Code Online (Sandbox Code Playgroud)

其中 20120601 是一个变量。我正在尝试使用以下方法来做到这一点:

test_var='%let output="file_$1.csv";'
echo test_var
Run Code Online (Sandbox Code Playgroud)

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

有谁知道我如何修改它以使其执行我想要的操作?

Lev*_*sky 5

由于单引号,它不起作用。他们把一切都写得字面意思。

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

$ echo $foo
"%hi there file_123"
Run Code Online (Sandbox Code Playgroud)