我需要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'
。我该如何解决这个问题?
答案 0 :(得分:3)
您需要从命令行中删除-c
以使其接受heredoc:
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'"