ユーザー入力に基づいてファイル名を見つけてファイルを読み取る必要がありますが、これはディレクトリの最初のファイルにのみ機能し、他のファイルには機能しません。助けてください!
これは私の.shファイルです。
#!/bin/bash
dir="test_users"
echo "Please enter filename"
read filename
find . -name "$filename"
cat $filename
if [ "$?" -ne 0 ]
then
echo "file: $filename does not exist"
fi
答え1
cat
ファイルが読み取れないときに表示されるエラーメッセージに満足している場合、スクリプトは非常に簡単です。
#!/bin/bash
printf "Please enter filename: "
read -r filename
cat "$filename"
ファイルが読めないときに独自のエラーメッセージを出力するには、次のようにします。
#!/bin/bash
printf "Please enter filename: "
read -r filename
if [ -r "$filename" ]; then
# File is readable, so print contents
cat "$filename"
elif [ -f "$filename" ]; then
# File exists, but file cannot be read
echo "Cannot read file $filename."
else
# File does not exist
echo "File $filename does not exist."
fi