Awk는 호스트 이름 -I를 사용하는 경우 "해당 파일 또는 디렉터리 오류가 없습니다"를 발생시킵니다.

Awk는 호스트 이름 -I를 사용하는 경우 "해당 파일 또는 디렉터리 오류가 없습니다"를 발생시킵니다.

이 명령은 잘 작동하며 호스트 이름을 인쇄합니다.

awk -v MYHOST=$(hostname) '{printf(MYHOST)}'

그러나 달리는 중

awk -v MYHOST=$(hostname -I) '{printf(MYHOST)}'

던진다

awk: cannot open "ip address" (No such file or directory)

답변1

당신은해야명령 대체에는 항상 큰따옴표를 사용하십시오.. 다음 명령이 수정되어 오류가 발생하지 않습니다.

awk -v MYHOST="$(hostname -I)" '{printf(MYHOST)}'

따옴표가 없는 경우 $(hostname -I)가능한 결과는 다음과 같습니다(확장 후).

  • awk -v MYHOST= '{printf(MYHOST)}'
    

    이것은 공식적으로 작동합니다.

  • awk -v MYHOST=1.2.3.4 '{printf(MYHOST)}'
    

    이것은 공식적으로 작동합니다.

  • awk -v MYHOST=1.2.3.4 5.6.7.8 '{printf(MYHOST)}'
    

    이는 5.6.7.8스크립트 및 {printf(MYHOST)}구문 분석할 파일로 처리됩니다. cannot open '{printf(MYHOST)}' (No such file or directory)해당 파일이 없으면 오류는 다음과 같습니다 .

  • awk -v MYHOST=1.2.3.4 5.6.7.8 9.10.11.12 … '{printf(MYHOST)}'
    

    여기서는 0개 이상의 추가 주소를 나타냅니다. 이는 5.6.7.8스크립트 및 9.10.11.12 … '{printf(MYHOST)}'구문 분석할 여러 파일로 처리됩니다. 오류에는 존재하지 않는 첫 번째 "파일"이 언급됩니다(예 cannot open '9.10.11.12' (No such file or directory): .

    귀하의 경우에 이런 일이 일어났습니다.

관련 정보