前台 bash 脚本将自身置于后台

前台 bash 脚本将自身置于后台

我有一个 bash 脚本,其行为大致如下。

#!/bin/bash
if some_condition ; then
    echo please enter some integer
    read a
else
    a=3
fi

# here 'd like to switch in the background
while true ; do
    echo beep
    sleep $a
done

因此脚本会提示输入,然后执行一些后台任务。

此刻我启动脚本,回答所有可能出现的问题/提示,按下CTRL-Z并输入bg

然后每当我想停止脚本时我都会输入

fg ; CTRL-C

我是否可以在同一个脚本中以编程方式执行此操作(将其置于后台)?

停止始终需要手动操作

答案1

您可以在后台运行的子 shell 中运行循环:

#!/bin/bash
if some_condition ; then
    echo please enter some integer
    read a
else
    a=3
fi


(while true ; do
    echo beep
    sleep $a
done) &

相关内容