シェルスクリプトを正しく作成して実行し、正しく終了する方法は? [コピー]

シェルスクリプトを正しく作成して実行し、正しく終了する方法は? [コピー]

私は次のようなファイルを書きました。起動ファイル多くのタスクを実行します(デフォルトではローカルコンピュータを開いた後、多くのタスクが開始されます)。抜粋内容は以下の通りです。

#!/bin/bash
gnome-terminal --tab &
veracrypt --auto-mount favorites &
thunderbird &
~/Application/IDEA/bin/./idea.sh &
/usr/bin/slack &
echo myuser mypass | skypeforlinux --pipelogin &
sh bsync-project-folder.sh &
exit

コンソールウィンドウを開き、次の操作を行います。

. startup.sh

シェルスクリプトが実行され、ウィンドウが閉じます。

まだ動作中:

sh startup.sh

または

./startup.sh

シェルスクリプトが実行され、ターミナルウィンドウが開いたままになります。ただし、コンソールに戻らず、スクリプトの実行を停止する必要がありますCTRL + C(コマンドラインインタプリタを使用しているか実行しているかにかかわらず./)。

しかし、スクリプトを完全に終了し、成功メッセージと共に同じコンソールに戻りたいと思います。私は何を見逃していますか?

答え1

「<dot><space><script name>」でスクリプトを起動し、スクリプトに「exit」が含まれている場合はウィンドウが閉じます。ドット表記はウィンドウで実行中であることを意味し、「終了」はスクリプト自体ではなくウィンドウを終了することを意味します。
> / dev / null 2>&1すべての行(最後&前)に追加して、どのコマンドがまだstdoutの外にあるかを確認します。例: gnome
-terminal --tab >/dev/null 2>&1 &
...
最後に出口に出ることはできますが、必ず出口に出る必要はありませんが、ここでは意味がありません。スクリプトの実行: ./startup.sh

関連情報