我是这个网站和 Linux 的新手。
我正在尝试制作一个简单的脚本,该脚本将使用新名称打开一个新终端,并从运行脚本的位置关闭旧终端。
我遇到的问题是进程号发生变化。因此,如果我启动进程并输入:echo $$我会看到 10602。进程结束后,如果加载新终端,进程号将更改为 10594。所以我实际上杀死了错误的进程。
此时我使用这段代码:
echo -n "Type new terminal name > " # displays messagebox
read text # load messagebox input
echo "$text" > /etc/terminalname # write messagebox input to file
gnome-terminal # open terminal with new name
kill -9 $PPID # this will kill the old terminal
exit # exit script
Run Code Online (Sandbox Code Playgroud) 是否有一个选项可以让无限的 while 循环作为函数在后台运行时,在任何给定时刻使用局部变量停止和开始运行?我已经尝试了很多选择,只是我无法找到一个简洁的解决方案。我让它工作的唯一方法是从 while 循环中读取外部文本文件。并在程序中的指定点将 0 或 1 写入该文本文件。
我现在正在做的是:
#!/bin/bash
intr(){ while true # function endless while loop start
do
sleep 0.5 # execute function every x time
var1=`grep "1" 0or1.txt` # read file 0or1.txt
if [ -n "$var1" ] ; then # if text =1 execute function,
# do some magic..
fi
done
} # end function
intr & # execute function as bg process
#some code # located some where in the script
echo "1" > 0or1.txt …Run Code Online (Sandbox Code Playgroud)