端末でテキストファイルのリストを見つけるためにディレクトリを検索したいと思います。あまり考えないように、いくつかの単語を検索したいと思います。たとえば、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
詳細を入力してください。それ以外の場合は、シェルのマニュアルページを参照してください。