我的脚本中有一行:
"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"
答案 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'