ファイルやディレクトリが見つからない場合、スクリプトの最後に何も表示されない理由を理解できません。
echo -n "Please enter a filename or directory: "
read filename
if [ -z "$filename" ]; then
echo "You did not enter anything!"
exit 1
fi
if [ -e "$filename" ]; then
if [ -f "$filename" ]; then
echo "You entered a file."
elif [ -d "$filename" ]; then
echo "You entered a directory."
else
echo "You did not enter a valid file or directory."
fi
fi
exit
私のコードに何が問題なのかわかりません。無効または存在しないファイルまたはディレクトリを入力すると、エコーは表示されません。
ベストアンサー1
if
ステートメントをインデントするためにスクリプト形式を再指定しました。これにより、最後の状況が真で偽の場合echo
にのみ発生することがより明確になります。ユーザーが存在しないファイルまたはディレクトリを入力すると失敗します。-f
-d
-f
前のセクションの修正を検討してください。
if [ -e "$filename" ]; then
if [ -f "$filename" ]; then
echo "You entered a file."
elif [ -d "$filename" ]; then
echo "You entered a directory."
fi
else
echo "You did not enter a valid file or directory."
fi
最初のステートメントの実際の部分はif
より早く終了します(によってelse
)。これにより、存在しないファイル/ディレクトリに実行するコードセクションがあります。