我有一个 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) &