我想这样做:
i="1"; echo -e '#!/usr/bin/env bash\nmyprogram -i "input_${i}.txt"'
Run Code Online (Sandbox Code Playgroud)
并将其通过管道传输到作业调度程序。
但是,这不会用它的值替换变量 i。相反,我得到了这个:
#!/usr/bin/env bash
myprogram -i "input_${i}.txt"
Run Code Online (Sandbox Code Playgroud)
我用选项 -e of echo 和单/双引号玩了一点,但无法使其工作。例如,我得到这个:
i="1"; echo -e "#!/usr/bin/env bash\nmyprogram -i \"input_${i}.txt\""
-bash: !/usr/bin/env: event not found
Run Code Online (Sandbox Code Playgroud)
我的 bash 版本是 4.1.2。
尝试这个:
i="1"; echo -e '#!/usr/bin/env bash\nmyprogram -i '"\"input_${i}.txt\""
Run Code Online (Sandbox Code Playgroud)
您可以同时使用echo单引号和双引号字符串。