我有一个我执行的shell文件,最后,我可以按 ENTER 再次运行它。问题是,每次按 ENTER 时,都会创建一个新进程,在20或30轮之后,我会得到30个PID,最终会破坏我的Linux。所以,我的问题是:如何让脚本始终在同一个进程中运行,而不是每次按 ENTER 时都创建一个新脚本?
代码:
#!/bin/bash
echo "Doing my stuff here!"
# Show message
read -sp "Press ENTER to re-start"
# Clear screen
reset
# Re-execute the script
./run_this.sh
exec $SHELL
答案 0 :(得分:1)
您需要exec
脚本本身,如此
#!/bin/bash
echo "Doing my stuff here!"
# Show message
read -sp "Press ENTER to re-start"
# Clear screen
reset
# Re-execute the script
exec bash ./run_this.sh
exec
不适用于shell脚本,因此您需要使用execute bash
代替脚本作为参数。
也就是说,脚本循环是一种更好的方法。
while :; do
echo "Doing my stuff here!"
# Show message
read -sp "Press ENTER to re-start"
# Clear screen
reset
done