“bash -c”命令有什么用?

Muk*_*ul 2 linux bash shell scripting

命令有什么用bash -c,我在网上冲浪时遇到了命令

ssh -t "${SSH_USER}@${SERVER_IP}" bash -c  
Run Code Online (Sandbox Code Playgroud)

这里的第一部分显然是对服务器进行 ssh,但到底bash -c负责什么?

Shu*_*tri 5

bash -coption withssh是一种在 ssh 服务器上使用变量扩展执行多行命令的方法。

说你有

VAR1="Variable 1"
ssh app@HOSTNAME '
ls
pwd
if true; then
    echo "True"
    echo $VAR1      # <-- it won't work
else
    echo "False"
fi
'
Run Code Online (Sandbox Code Playgroud)

但是用 bash -c

VAR1="Variable 1"
 ssh -t "${SSH_USER}@${SERVER_IP}" bash -c "'
ls
pwd
if true; then
    echo $VAR1     <-- This works
else
    echo "False"
fi
'"
Run Code Online (Sandbox Code Playgroud)

  • 不过,没有什么可以阻止您从命令中删除“bash -c”和不必要的外部双引号,所以我认为这并不能真正回答问题。 (2认同)