Bash:如何用bash脚本在$ {VAR}和值中写入文件?

时间:2017-04-18 07:39:22

标签: bash

我需要写两个变量,比如$ {myvar}及其值。

此代码不能替代并按原样写入文本:

cat >${PROGNAME_APPDIR}/AppRun <<'EOF'
#!/bin/bash

HERE=$(dirname $(readlink -f "${0}"))
export LD_PRELOAD="${HERE}"/lib/exec_wrapper.so
export BIN_DIR="${HERE}${DIR}"
exec "${BIN_DIR}"/binary "$@"
EOF

当我将<< 'EOF'更改为<< EOF时,代码会替换所有代码。但我需要替换${DIR}的值。

如何在没有疯狂编码的情况下进行混合编写?

1 个答案:

答案 0 :(得分:4)

您必须转义$符号,将$更改为\$,以便将其视为正常字符:

cat >${PROGNAME_APPDIR}/AppRun <<EOF
#!/bin/bash                                                                                                                                                                                                                                        

HERE=\$(dirname \$(readlink -f "\${0}"))                                                                                                                                                                                                              
export LD_PRELOAD="\${HERE}"/lib/exec_wrapper.so                                                                                                                                                                                                    
export BIN_DIR="\${HERE}${DIR}"                                                                                                                                                                                                                
exec "\${BIN_DIR}"/binary "\$@"                                                                                                                                                                                                                   
EOF