bash中嵌套命令的herdoc

bash中嵌套命令的herdoc,bash,ssh,nested,heredoc,Bash,Ssh,Nested,Heredoc,我需要ssh到一台机器中,并在sudobash下执行一系列命令。以下是我尝试过的: sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash -i -c <<EOF echo ls echo EOF" sshpass-p“vagrant”sshvagrant@33.33.33.100“sudobash-i-c您需要从命令行中删除-c,使其接受herdoc: sshpass -p "vagrant" ss

我需要ssh到一台机器中,并在
sudobash
下执行一系列命令。以下是我尝试过的:

sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash -i -c <<EOF
    echo
    ls
    echo
EOF"

sshpass-p“vagrant”sshvagrant@33.33.33.100“sudobash-i-c您需要从命令行中删除
-c
,使其接受herdoc:

sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash <<EOF
    echo
    ls
    echo
EOF"

-c
选项需要命令行中的参数,而不是herdeoc。herdeoc是一个输入重定向。只要删除
-c
,它就可以正常工作。此外,
-i
表示“交互式”,不是吗?如果重定向其标准输入,怎么可能?@anubhava,谢谢,它解决了我的问题!你能写吗一个我能接受的答案?另外,如果你有时间的话,我想知道为什么它一开始不起作用的更多细节。
sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash -c 'echo; ls; echo'"