在bash中转义字符

时间:2015-04-26 10:23:43

标签: 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”命令正在执行,或者存在语法错误。有谁知道我怎么可能将字符串打印到文件上?提前致谢

全行:

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"

2 个答案:

答案 0 :(得分:1)

这应该有效:

'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"

答案 1 :(得分:0)

尝试单引号除了行内的单引号之外的所有内容。使用\'作为单引号:

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'