Bashスクリプトで終了を使用しますが、端末を閉じないでください。

Bashスクリプトで終了を使用しますが、端末を閉じないでください。

デスクトップ検索ツールを簡単に使用できるようにシェル関数を作成しましたbaloosearch。そのため、これを関数にしました。

この関数では、コマンド、s、または条件をexit使用してループを終了する必要があります。問題は、コマンドの実行時に端末ウィンドウも終了することです。ifcaseexit

exit私の質問は、ターミナルウィンドウを閉じずにこれを使用する方法はありますか?

これをシェルスクリプトとして使用する場合は問題ありませんが、BASH関数として実行する必要があります。

答え1

1.5分間調査した後、自分で答えることができます。

解決策は次のとおりです。返品やめる代わりに。この方法で関数を終了すると、端末は閉じずにシェルセッションが開いたままになります。

答え2

復帰や割り込みの代わりに終了する必要がある場合は、サブターミナル内でコマンドを実行できます。$(cmd)その後、終了するとサブターミナルが終了します。戻り値が実行されることを覚えておいてください。したがって、echo -e "Result from cmd:\n$(cmd)"出力だけが必要な場合は、そのようなもので囲むこともできます。一般的returnには十分ですが、時にはスクリプトを所有していません。

関連情報