たとえば、私は端末でGUIプログラムを起動するのが好きですemacs myfile.txt
。ただし、これを行うと、プロセスと共にターミナルウィンドウが開いているので、追跡できる2つのウィンドウがあります。ターミナルウィンドウを閉じると、GUIプログラムは閉じます。
実行できることを知っていますexec cmd
。cmd
実行するコマンドがどこにあるかを確認し、ターミナルウィンドウを閉じます。後ろにプログラムが完了しました。さて、コマンド実行後に端末ウィンドウを閉じたい発表。これを行う方法はありますか?
答え1
この関数を次に追加できます~/.bashrc
。
openclose() {
"$@" &
disown
exit
}
新しい端末(または)を開き、実行してsource ~/.bashrc
テストしてみてください。
openclose emacs myfile.txt
"$@" &
このコマンドをバックグラウンドで実行します。disown
シェルからバックグラウンドプロセスを削除するため(help disown
およびman bash
、シグナルセクションを参照)、シェルが閉じてもプロセスはまだ存在します。exit
シェルを終了します。