![사용자 입력을 기반으로 파일 이름을 찾은 다음 파일 내용을 읽어야 합니다.](https://linux55.com/image/187734/%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%9E%85%EB%A0%A5%EC%9D%84%20%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%B0%BE%EC%9D%80%20%EB%8B%A4%EC%9D%8C%20%ED%8C%8C%EC%9D%BC%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EC%9D%BD%EC%96%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EB%8B%A4..png)
사용자 입력을 기반으로 파일 이름을 찾은 다음 파일을 읽어야 하지만 이는 디렉터리의 첫 번째 파일에만 작동하고 다른 파일에는 작동하지 않습니다. 도와주세요!
이것은 지금까지 내 .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