我怎样才能用一个 ssh 命令做这样的事情:
echo << EOF
echo "Choose a file:" *
read f
rm -r "$f"
EOF | ssh user@host
我可以使用-tt
(是的二t's) 与 ssh 使 ssh 从标准输入读取,但它似乎不允许read
工作。
有办法做到这一点吗?
答案1
如果我正确理解你的示例命令,这应该有效:
ssh user@host 'echo "Input something:"; read VAR; echo "Got: $VAR"'
当“主机”是 Slackware Linux 服务器并ssh
在 Arch Linux 笔记本电脑上运行时,这种方法就有效。我在 Slackware 服务器上的 shell 是 zsh 4.2.6 (i486-slackware-linux-gnu)。由于read
是内置的 shell,我想 shell 的选择可能与它有关。