我有这样的功能:
function accountSetup() {
ssh -tt $HOST << EOF
adduser billy
[second command]
[third command]
EOF
}
这使终端挂起。我之前已成功使用 -tt
标志以交互方式执行一些带有 EOF
的命令,但我似乎无法使用上述脚本在远程服务器上以交互方式创建新帐户。
这工作正常,允许我设置密码、名称等:
function accountSetup() {
ssh -tt $HOST adduser billy
}
但是,当我介绍其他必要的命令时,它开始变得愚蠢..我确信有更好的方法来执行它们,而无需像这样重复登录:
function accountSetup() {
ssh -tt $HOST adduser billy
ssh -tt $HOST [third command]
ssh -tt $HOST [second command]
}
问题: 是什么导致我的终端在第一个功能中挂起?如何ssh一次以交互方式创建帐户并继续执行命令?
谢谢:)
最佳答案
如果你告诉ssh
从heredoc获取输入,它不能同时通过tty从你那里获取输入。
您可以将命令重写为:
function accountSetup() {
ssh -t $HOST '
adduser billy
[second command]
[third command]
'
}
关于linux - 在远程计算机上以交互方式创建新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54940962/