Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在shell脚本中按enter键并忽略nohup输出_Linux_Bash_Shell - Fatal编程技术网

Linux 在shell脚本中按enter键并忽略nohup输出

Linux 在shell脚本中按enter键并忽略nohup输出,linux,bash,shell,Linux,Bash,Shell,我有一个基本的shell脚本,用于部署我的包 在执行命令时,我面临两个问题 nohup/home/username/wildfly/wildfly-20.0.1.Final/bin/standalone.sh& 它让我僵住了,说下面的话 nohup:将stderr重定向到stdout 如果我以正常方式运行这个命令,我应该按ENTER键,进程将在后台正常运行。 那么,我的问题是,有没有办法模拟输入键笔划 我还有一个scp命令将文件复制到另一台服务器,执行后需要输入密码,有没有办法通过myscrip

我有一个基本的shell脚本,用于部署我的包

在执行命令时,我面临两个问题

nohup/home/username/wildfly/wildfly-20.0.1.Final/bin/standalone.sh&

它让我僵住了,说下面的话

nohup:将stderr重定向到stdout

如果我以正常方式运行这个命令,我应该按ENTER键,进程将在后台正常运行。 那么,我的问题是,有没有办法模拟输入键笔划

我还有一个
scp
命令将文件复制到另一台服务器,执行后需要输入密码,有没有办法通过
myscript.sh
输入密码并按enter键

scp/home/username/myfile.war 0.0.0:/home/username/myfile.war


提前感谢:)

它实际上不应该冻结您,只是看起来很混乱,因为它在提示下一个命令后有“nohup:”消息(然后您需要按enter键以获得新提示)。但您应该能够通过自己重定向stdout和stderr来避免该消息:

nohup /home/username/wildfly/wildfly-20.0.1.Final/bin/standalone.sh >/dev/null 2>&1 &

这会将stdout和stderr发送到/dev/null,因此
nohup
不必处理它们。

您无法与后台进程交互。可以想象,您可以使用
expect
来处理交互,但出于此目的,将密码等存储在明文中始终是一个糟糕的选择。对于<代码> SCP < /代码>考虑使用SSH密钥对,可能与
forced_命令
…您可以执行类似
printf'\n'| nohup/home/username/wildfly/wildfly-20.0.1.Final/bin/standalone.sh&
的操作来模拟按ENTER键吗?正如前面的评论中所提到的,您需要一些工具,例如用于此类需求的通用解决方案。对于shell脚本,请看我的。谢谢,它解决了第一部分,对于另一台服务器的SCP命令,我将使用ssh密钥对来完成。请将此添加到您的答案中,这样它将包含完整的解决方案,我会将其标记为正确的解决方案。