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