在bash中将命令包含在转义字符中
我有一个引号中的命令:在bash中将命令包含在转义字符中,bash,Bash,我有一个引号中的命令: ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ `uname -a` == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh" “uname”部分必须按字面意思编写,而不是执行。我尝试在“uname”部分之前使用“\”,但我不知道如何关闭它。有人能帮忙吗 您可以在BASH中对转义的$使用$(…):
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ `uname -a` == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
“uname”部分必须按字面意思编写,而不是执行。我尝试在“uname”部分之前使用“\”,但我不知道如何关闭它。有人能帮忙吗 您可以在BASH中对转义的$
使用$(…)
:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \$(uname -a) == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
在BASH中,您可以将$(…)
与转义的$
一起使用:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \$(uname -a) == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
在BASH中,您可以将$(…)
与转义的$
一起使用:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \$(uname -a) == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
在BASH中,您可以将$(…)
与转义的$
一起使用:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \$(uname -a) == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
改为使用here文档,这简化了嵌套的引号
ssh -i "/home/$USER/$KEY" "$USER@$WORKER1IP" <<EOF
echo 'if [[ $(uname -a) == Darwin* ]]; then' >> "/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
EOF
ssh-i”/home/$USER/$KEY”“$USER@$WORKER1IP”“/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh”
EOF
改用here文档,它简化了嵌套的引号
ssh -i "/home/$USER/$KEY" "$USER@$WORKER1IP" <<EOF
echo 'if [[ $(uname -a) == Darwin* ]]; then' >> "/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
EOF
ssh-i”/home/$USER/$KEY”“$USER@$WORKER1IP”“/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh”
EOF
改用here文档,它简化了嵌套的引号
ssh -i "/home/$USER/$KEY" "$USER@$WORKER1IP" <<EOF
echo 'if [[ $(uname -a) == Darwin* ]]; then' >> "/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
EOF
ssh-i”/home/$USER/$KEY”“$USER@$WORKER1IP”“/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh”
EOF
改用here文档,它简化了嵌套的引号
ssh -i "/home/$USER/$KEY" "$USER@$WORKER1IP" <<EOF
echo 'if [[ $(uname -a) == Darwin* ]]; then' >> "/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
EOF
ssh-i”/home/$USER/$KEY”“$USER@$WORKER1IP”“/home/$USER/tachyon-0.5.0/conf/tachyon-env.sh”
EOF
这应该可以:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \"\$(uname -a)\" == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
这也是:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \`uname -a\` == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
这应该起作用:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \"\$(uname -a)\" == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
这也是:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \`uname -a\` == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
这应该起作用:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \"\$(uname -a)\" == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
这也是:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \`uname -a\` == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
这应该起作用:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \"\$(uname -a)\" == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
这也是:
ssh -i "/home/$USER/$KEY" "$USER"@"$WORKER1IP" "echo 'if [[ \`uname -a\` == Darwin* ]]; then' >> /home/$USER/tachyon-0.5.0/conf/tachyon-env.sh"
我想OP需要
'EOF'
(单引号)。也许,除非$USER
需要在本地扩展。它是原始的。哦,我明白了,但是如果您远程或本地扩展$USER
,它应该不会有什么区别,因为OP是作为$USER
连接的。另一种选择是在那里使用$HOME
。如果在EOF
周围没有单引号,这是没有意义的,因为您将远程评估本地uname
命令的输出。我想OP希望'EOF'
(单引号)。可能,除非$USER
需要在本地展开。它是原始的。哦,我明白了,但是如果您远程或本地扩展$USER
,它应该不会有什么区别,因为OP是作为$USER
连接的。另一种选择是在那里使用$HOME
。如果在EOF
周围没有单引号,这是没有意义的,因为您将远程评估本地uname
命令的输出。我想OP希望'EOF'
(单引号)。可能,除非$USER
需要在本地展开。它是原始的。哦,我明白了,但是如果您远程或本地扩展$USER
,它应该不会有什么区别,因为OP是作为$USER
连接的。另一种选择是在那里使用$HOME
。如果在EOF
周围没有单引号,这是没有意义的,因为您将远程评估本地uname
命令的输出。我想OP希望'EOF'
(单引号)。可能,除非$USER
需要在本地展开。它是原始的。哦,我明白了,但是如果您远程或本地扩展$USER
,它应该不会有什么区别,因为OP是作为$USER
连接的。另一种选择是在那里使用$HOME
。如果在EOF
周围没有单引号,则没有意义,因为您将远程计算本地uname
命令的输出。不,这是在括号中打印uname-a的结果。不,这是在括号中打印uname-a的结果。不,这是在括号中打印uname-a的结果。不,这是在括号中打印uname-a的结果。好的,我用uname-a修正了它。好的,我用uname-a修正了它。好的,我用uname-a修正了它。好的,我用uname-a修正了它。