【发布时间】:2021-01-26 20:50:12
【问题描述】:
我有一个基本的 shell 脚本,用于部署我的包...
我在执行命令时遇到 2 个问题
nohup /home/username/wildfly/wildfly-20.0.1.Final/bin/standalone.sh &
它让我冻结并说出下面的话
nohup: redirecting stderr to stdout
如果我以正常方式运行此命令,我应该按 ENTER 并且该进程将继续在后台正常运行。 那么,我的问题是有什么方法可以模拟那个 ENTER 键击?
我还有一个scp命令复制一个文件到另一个服务器,执行后需要输入密码,有没有办法通过myscript.sh输入密码然后按ENTER键?
scp /home/username/myfile.war 0.0.0.0:/home/username/myfile.war
提前致谢 :)
【问题讨论】:
-
您不能与后台进程交互。可以想象,您可以使用
expect来处理交互,但是为此目的而明文存储密码和诸如此类的东西总是一个糟糕的选择。对于scp,考虑使用 ssh-keypair,可能与forced_command结合使用 ... -
你能做类似
printf '\n' | nohup /home/username/wildfly/wildfly-20.0.1.Final/bin/standalone.sh &的事情来模拟按ENTER吗?