ケース…イン、パイル型ケース

ケース…イン、パイル型ケース

$1仕事を得ましたが、それがファイルなのか、特殊なファイルなのか、フォルダなのかをテストする必要があります。ケース$1ステートメント

いくつか試してみましたが、うまくいきませんでした。これを実装する方法に関するアイデアはありますか(in Caseステートメント)

私が達成しなければならないことは次のとおりです。

if [ -f $1 ]
then
    exit 1
elif [ -d $1 ]
then
    exit 2
elif [ -c $1 -o -b $1 ]
then
    exit 3
else
    exit 0
fi

私は最終的なコードを要求するのではなく、次のことを行う方法を求めることです。

Case $1 in
    -d) ...

ベストアンサー1

ifあなたが投稿したベースコードは十分に単純に見えるので、構文を使用するための要件はcase少し奇妙です。以下を提供するファイル形式情報を検索できるようですls -l

case "$(ls -ld -- "$1")" in
    -*) echo 'Regular file' ;;
    d*) echo 'Directory' ;;
    *)  echo 'other' ;;
esac

おすすめ記事