我需要通过ssh登录到一台机器,并在sudo bash下执行一系列命令。以下是我尝试过的方法: sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash -i -c <<EOF echo ls echo EOF" 但是它会抛出 'bash: -c: option requires an argument\n' 的错误。我该如何修复这个问题?
要接受heredoc,请从命令行中删除-c: sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash <<EOF echo ls echo EOF" 您可以移除-i(交互式)选项。 bash -c 希望您在命令行提供所有的命令,因此这也可能有效: sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash -c 'echo; ls; echo'"
-i
不是表示“交互式”吗?如果你正在重定向其标准输入,那么这怎么可能呢? - Jdamian