通过命令行打开应用很酷的,当删掉快捷方式后,别人拿到你的电脑连应用都打不开。

问题

需要解决的问题是打开应用之后会将警告或错误信息输出到终端上,且该程序是终端的一个子进程,关掉终端就关掉应用程序了。

当打开很多的时候就比较烦了。

所以我们通过nohup将应用转入后台:

#!/bin/bash

echo -e "\033[33m 1--->\033[0m eclipse\t|\033[31m 7--->\033[0m QQ"
echo -e "\033[33m 2--->\033[0m AndroidStudio"
echo -e "\033[33m 3--->\033[0m chrome"
echo -e "\033[33m 4--->\033[0m firefox"
echo -e "\033[33m 5--->\033[0m eclipse-php"
echo -e "\033[33m 6--->\033[0m wps"
echo -e "\033[32m q--->\033[0m exit"

read -t 40 -p "input choice:" choice

case "$choice" in
    "1")
        #打开eclipse
       nohup /home/SoftwareDev/eclipse/eclipse/eclipse &
        ;;
    "2")
        #打开as一系列
        ;;
    "3")
        #打开chrome
        nohup /usr/bin/google-chrome %U --no-sandbox &
        ;;
    "4")
        #firefox
        nohup /usr/bin/firefox &
        ;;
    "5")
        #eclipse php
       nohup /home/SoftwareDev/eclipse-php-neon-1a-linux-gtk-x86_64/eclipse &
        ;;
    "6")
        #wps
       nohup /usr/bin/wps &
        ;;
    "7")
       nohup /opt/deepinwine/apps/Deepin-QQ/run.sh &
        ;;
    "q")

        ;;
    *)
        echo "input error!"
esac

但这样还不完美,虽然可以关掉终端,但还需要手动来关,这怎么可以呢?于是通过获取到当前运行的bash进程id,强行杀死它。

也许你的电脑终端名字不叫bash

root@jimo:~# ps
  PID TTY          TIME CMD
30942 pts/3    00:00:00 bash
30959 pts/3    00:00:00 ps
root@jimo:~# ps | grep bash
30942 pts/3    00:00:00 bash
root@jimo:~# ps | grep bash | awk '{print $1}'
30942
root@jimo:~#

kill -9 PID代表强行杀死。

所以最终这样:

...
...
pid=$(ps | grep bash | awk '{print $1}')
kill -9 $pid

results matching ""

    No results matching ""