lin*_*ndy 4 ssh bash nested heredoc
我需要 ssh 进入一台机器并在sudo bash. 这是我尝试过的:
sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash -i -c <<EOF
echo
ls
echo
EOF"
Run Code Online (Sandbox Code Playgroud)
但这让我很困惑'bash: -c: option requires an argument\n'。我怎样才能解决这个问题?
您需要-c从命令行中删除以使其接受heredoc:
sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash <<EOF
echo
ls
echo
EOF"
Run Code Online (Sandbox Code Playgroud)
您也可以删除-i(交互式)选项。
bash -c希望您在命令行上提供所有命令,因此这也可以工作:
sshpass -p "vagrant" ssh vagrant@33.33.33.100 "sudo bash -c 'echo; ls; echo'"
Run Code Online (Sandbox Code Playgroud)