禁用挂脚

时间:2014-05-23 18:18:16

标签: linux bash user-input

在LINUX中启动bash脚本时,脚本成功并成功,但终端挂起。我必须始终输入CTRL + C来结束程序。我可以输入终端并按Enter键,但脚本没有响应。

我无法更改脚本文件,但是我可以启动它以禁用等待用户吗?有关禁用此行为的任何疑难解答提示吗?

1 个答案:

答案 0 :(得分:1)

您可以在最后使用&执行脚本,这会将控件返回给shell(将脚本作为后台进程执行)。

./script.sh &

如果要停止脚本,则需要获取其进程ID,然后将其终止。要获取进程ID,请执行ps aux | grep script,其中script是您的脚本名称,或者在启动脚本后立即执行echo $!。如果您拥有流程ID,则可以使用kill 1234取消流程,其中1234是流程ID。

如果可以估算脚本的执行时间,可以在一段时间后自动终止它:

bash -c '(sleep 5m; kill $$ 2> /dev/null) & exec script' &

在此命令中sleep 5m是进程被终止后的时间,script是脚本(或命令)的名称。

例如,如果脚本的执行时间平均为30秒,那么您可以将超时设置为一分钟或两分钟,以便在执行速度比平时慢时给它一些额外的时间。请注意,此命令不保证脚本完成其执行,因此请小心使用它。