通过命令行打开应用很酷的,当删掉快捷方式后,别人拿到你的电脑连应用都打不开。
问题
需要解决的问题是打开应用之后会将警告或错误信息输出到终端上,且该程序是终端的一个子进程,关掉终端就关掉应用程序了。
当打开很多的时候就比较烦了。
所以我们通过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