我在脚本中有以下行:
output=$(sudo ssh root@172.20.209.11 "/etc/config/users/pzsr7z/scripts-modified/scripts/wizard/enroller 10.193.22.236 22 WDCCRNMTS001 WDCCR-1-COMPT-R102 8")
我如何将其发送到后台,以便在此行处理背景时脚本可以继续使用其余行?
我试过放一个&在行尾但我最终得到一些奇怪的行为(键击没有被正确处理)
答案 0 :(得分:2)
将stdin从/ dev / null重定向,将stdout和stderr重定向到file:
cmd="/etc/config/users/pzsr7z/scripts-modified/scripts/wizard/enroller 10.193.22.236 22 WDCCRNMTS001 WDCCR-1-COMPT-R102 8"
ssh root@172.20.209.11 "$cmd" </dev/null >enroller.log 2>&1 & ssh_pid=$!
...然后,您可以等待它完成并阅读文件:
if wait "$ssh_pid"; then
echo "Remote command exited with a successful exit status" >&2
else
echo "Remote command exited with a failed exit status" >&2
fi
output=$(<enroller.log)