사용자 입력을 기반으로 파일 이름을 찾은 다음 파일 내용을 읽어야 합니다.

사용자 입력을 기반으로 파일 이름을 찾은 다음 파일 내용을 읽어야 합니다.

사용자 입력을 기반으로 파일 이름을 찾은 다음 파일을 읽어야 하지만 이는 디렉터리의 첫 번째 파일에만 작동하고 다른 파일에는 작동하지 않습니다. 도와주세요!

이것은 지금까지 내 .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

관련 정보