最初の elif が true の場合、次の elif に続行しない方法は何ですか?

最初の elif が true の場合、次の elif に続行しない方法は何ですか?

端末でテキストファイルのリストを見つけるためにディレクトリを検索したいと思います。あまり考えないように、いくつかの単語を検索したいと思います。たとえば、search one two three名前に複数の単語を含むファイルがある場合は、その単語を返します。これは私のif文です。

snip-list() {
    for filename in ~/notes/*; do
        file=`basename "$filename"`
        fs=${file%.*}
        if [[ $fs =~ $1 ]] && [[ $fs =~ $2 ]] && [[ $fs =~ $3 ]] && [[ $fs =~ $4 ]] && [[ $fs =~ $5 ]]; then
            echo $fs
            # exit
        elif [[ $fs =~ $1 ]] && [[ $fs =~ $2 ]] && [[ $fs =~ $3 ]] && [[ $fs =~ $4 ]]; then
            echo $fs
            # exit
        elif [[ $fs =~ $1 ]] && [[ $fs =~ $2 ]] && [[ $fs =~ $3 ]]; then
            echo $fs
            # exit
        elif [[ $fs =~ $1 ]] && [[ $fs =~ $2 ]]; then
            echo $fs
            # exit
        elif [[ $fs =~ $1 ]]; then
            echo $fs
        fi
    done
}

このディレクトリにファイルを追加するので、文をそのまま実行すると、あまりにも多くの結果が返され、役に立たなくなります(少なくとも最初の結果を表示するには一番上までスクロールする必要があります)。

「ユーザーが5つの検索語を検索して何かを返した場合」を実行する方法がある場合はどうなりますか?他の4つの条件を実行しないでください。

私は各文の後に実行しようとしました、exitこれは私が望むものです開いたままにするには、ターミナルウィンドウが必要です。

ベストアンサー1

シェル関数から戻るreturn代わりに使用してください。exit

シェルbashまたは組み込みのヘルプを含む他のシェルを使用している場合は、help return詳細を入力してください。それ以外の場合は、シェルのマニュアルページを参照してください。

おすすめ記事