【发布时间】:2015-01-16 16:41:35
【问题描述】:
我需要 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'。我该如何解决这个问题?
【问题讨论】:
-
-c选项需要命令行中的参数,而不是heredoc。 heredoc 是一种输入重定向。 -
删除
-c就可以了。 -
另外,
-i表示“交互式”,不是吗?如果你重定向它的标准输入怎么可能? -
@anubhava,谢谢,它解决了我的问题!你能写一个答案让我接受吗?另外,如果您有时间,我想详细了解一下为什么它一开始就不起作用。