我具有这样的功能:
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来创建一个交互式帐户并继续执行命令?
谢谢:)
答案 0 :(得分:0)
如果您告诉ssh
从Heredoc输入信息,则它不能同时通过tty从您那里获取输入信息。
您可以将命令重写为:
function accountSetup() {
ssh -t $HOST '
adduser billy
[second command]
[third command]
'
}