ユーザー入力に基づいてファイル名を見つけて、ファイルの内容を読み取る必要があります。

ユーザー入力に基づいてファイル名を見つけて、ファイルの内容を読み取る必要があります。

ユーザー入力に基づいてファイル名を見つけてファイルを読み取る必要がありますが、これはディレクトリの最初のファイルにのみ機能し、他のファイルには機能しません。助けてください!

これは私の.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

おすすめ記事