小编Und*_*ore的帖子

如何从 bash 脚本关闭终端

我是这个网站和 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)

bash scripts gnome-terminal

6
推荐指数
1
解决办法
1万
查看次数

如何停止在后台运行的无限 while 循环?

是否有一个选项可以让无限的 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)

bash scripts

5
推荐指数
1
解决办法
8641
查看次数

标签 统计

bash ×2

scripts ×2

gnome-terminal ×1