bash中的转义字符

bash中的转义字符,bash,Bash,我的脚本中有一行: "echo 'CONF_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh" 部分CONF_DIR=“$(cd“$(dirname“${BASH_SOURCE[0]}”)”&&pwd)”必须按原样写入tachyon-env.sh文件。我尝试了许多转义字符的组合,但要么是“cd”和“pwd”

我的脚本中有一行:

"echo 'CONF_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
部分CONF_DIR=“$(cd“$(dirname“${BASH_SOURCE[0]}”)”&&pwd)”必须按原样写入tachyon-env.sh文件。我尝试了许多转义字符的组合,但要么是“cd”和“pwd”命令正在执行,要么是语法错误。有人知道我怎么把这行字打印到文件上吗?提前谢谢

全文如下:

ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'CONF_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"

尝试单引号引用所有内容,但行中的单引号除外。对单引号使用
\'

ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" 'echo '\''CONF_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"'\'' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh'
这应该起作用:

'echo "CONF_DIR=\"\$( cd \"\$( dirname \"\${BASH_SOURCE[0]}\" )\" && pwd )\"" >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh'
这也是:

"echo 'CONF_DIR=\"\$( cd \"\$( dirname \"\${BASH_SOURCE[0]}\" )\" && pwd )\"' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"

为什么整行都用双引号括起来?只需单引号将字符串
echo'CONF_DIR=“$(cd”$(dirname“${BASH_SOURCE[0]}”)”&&pwd)>/home/$USER/tachyon-0.5.0/CONF/tachyon-env.sh
在ssh复制到另一台机器后执行。您在^^之前提出的问题可能是相同的。。