awk 명령이 포함된 쉘 스크립트를 실행하는 방법 [닫기]

awk 명령이 포함된 쉘 스크립트를 실행하는 방법 [닫기]

이 스크립트( 라고 함)를 어떻게 실행합니까 count.sh?

awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'

실행하려고 하는데 sh count.sh오류가 발생합니다.

답변1

내 스크립트에 대해 내가 수행한 작업은 다음과 같습니다.

#!/usr/bin/awk -f
BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }

이 접근 방식의 유일한 단점은 Awk에 대한 경로가 하드코딩되어 있다는 것입니다. 이는 스크립트가 NFS를 통해 내보내지고 NFS 클라이언트가 다른 디렉터리(예: .)에 Awk를 설치한 경우 /bin/awk중단 /usr/bin/awk됩니다 .

실행 권한을 설정하면 스크립트를 실행하기 위해 셸을 사용하지 않고도 스크립트를 직접 호출할 수 있습니다(관례에 따라 스크립트에 포함되지 않으므로 .sh 확장자를 생략할 수도 있습니다).

$ chmod +x count
$ ./count
1
2
3
4
5

답변2

귀하의 스크립트를 실행했는데 오류가 발생하지 않았습니다(예상했던 것과는 달리 :)).

$ cat test.awk
awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'
$ bash test.awk
1
2
3
4
5

어떤 오류가 발생했나요? 나는 awk가 처리할 입력 파일을 요청할 것으로 예상했습니다. :)

관련 정보