フォルダが存在することを確認するためにケースを使用できますか?
このフォルダがあります。フォルダが存在することを確認し、何かをする必要があります。 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