ケース/スイッチを使用してフォルダがあることを確認してください。

ケース/スイッチを使用してフォルダがあることを確認してください。

フォルダが存在することを確認するためにケースを使用できますか?

このフォルダがあります。フォルダが存在することを確認し、何かをする必要があります。 5つのフォルダを確認し、フォルダが存在する場合は、各フォルダで異なるコンテンツを処理する必要があります。できますか?

そうでなければ、最良のアプローチは何ですか?たぶん複数のif文がありますか?

答え1

Caseステートメントはif / thenなどの条件付き評価を実行できません。ケース/スイッチは実際にパターンを一致させ、一致に基づいて特定のケースを実行できます。

潜在的なソリューション

[ .. ]このように使い始めましょう。

[ -d /path/to/folder1 ] && echo cmd1
[ -d /path/to/folder2 ] && echo cmd2
[ -d /path/to/folder3 ] && echo cmd3
[ -d /path/to/folder4 ] && echo cmd4
[ -d /path/to/folder5 ] && echo cmd5

後でより複雑なコマンドを実行する必要がある場合は、形式的な if/then に切り替えることをお勧めします。

if [ -d /path/to/folder1 ]; then
  cmd1;
fi

答え2

もちろん、glob/caseを混ぜて使用してこれを行うこともできます。

単一フォルダの場合は、次のことができます。

set X "$folder_name" "${folder_name}"*/; shift
case $2 in
   "$1/" ) echo "The folder <<${folder_name}>> exists." ;;
   * ) echo "The folder <<${folder_name}>> does not exist." ;;
esac

関連情報