unix/linux bash의 `line` 명령은 권한 거부 메시지를 표시합니다.

unix/linux bash의 `line` 명령은 권한 거부 메시지를 표시합니다.

최근에는 스크립트 코드 작성 방법을 배우고 있습니다.

나는 스크립트를 작성했습니다 :

#!/bin/sh
# while3b.sh
while f=`line`
do
        .. process f ..
done < ./myfile

그리고 여기는myfile

hello
howdy
gday
bonjour
guten tag 
您好!
*

터미널에 다음을 입력했는데 sh while3b.sh다음과 같은 권한 정보가 표시되었습니다.

while3b.sh: 4: while3b.sh: ..: Permission denied
while3b.sh: 4: while3b.sh: ..: Permission denied
while3b.sh: 4: while3b.sh: ..: Permission denied
while3b.sh: 4: while3b.sh: ..: Permission denied
while3b.sh: 4: while3b.sh: ..: Permission denied
while3b.sh: 4: while3b.sh: ..: Permission denied
while3b.sh: 4: while3b.sh: ..: Permission denied
while3b.sh: 4: while3b.sh: ..: Permission denied

ls -al확인하는 데 사용하려고했습니다 rwx.myfile

-rwxrwxrwx 1 shanechiu shanechiu    48 Jan 31 11:38 myfile
-rwxr-xr-x 1 shanechiu shanechiu    61 Jan 31 11:45 while3b.sh

슈퍼유저로 변경 한 su - root다음 while3b.sh 스크립트를 다시 실행했는데 동일한 정보가 표시되었습니다. 왜?

누구든지 나에게 부탁 좀 해줄 수 있나요? 미리 감사드립니다.

답변1

내 생각 *에는 myfile. f별표가 패턴 일치 문자로 확장되면 어떻게든 평가 하고 문제가 발생할 수 있습니다.

예:

#!/bin/sh
# while3b.sh
while f=`line`
do
        echo $f
done < ./myfile

~으로 이끌다

$ ./while3b.sh
hello
howdy
gday
bonjour
guten tag
您好!
myfile myfile~ while3b.sh

내 디렉토리 에는 세 개의 파일 과 myfile. .​​myfile~while3b.sh$f*

관련 정보