ターミナルでGUIプログラムを起動して起動した後にターミナルを閉じるにはどうすればよいですか? [コピー]

ターミナルでGUIプログラムを起動して起動した後にターミナルを閉じるにはどうすればよいですか? [コピー]

たとえば、私は端末でGUIプログラムを起動するのが好きですemacs myfile.txt。ただし、これを行うと、プロセスと共にターミナルウィンドウが開いているので、追跡できる2つのウィンドウがあります。ターミナルウィンドウを閉じると、GUIプログラムは閉じます。

実行できることを知っていますexec cmdcmd実行するコマンドがどこにあるかを確認し、ターミナルウィンドウを閉じます。後ろにプログラムが完了しました。さて、コマンド実行後に端末ウィンドウを閉じたい発表。これを行う方法はありますか?

ベストアンサー1

この関数を次に追加できます~/.bashrc

openclose() {
    "$@" &
    disown
    exit
}

新しい端末(または)を開き、実行してsource ~/.bashrcテストしてみてください。

openclose emacs myfile.txt
  • "$@" &このコマンドをバックグラウンドで実行します。
  • disownシェルからバックグラウンドプロセスを削除するため(help disownおよびman bash、シグナルセクションを参照)、シェルが閉じてもプロセスはまだ存在します。
  • exitシェルを終了します。

おすすめ記事