Ubuntu 데스크탑에서는 awk 명령 반환을 찾을 수 없지만 Centos에서는 잘 작동합니다.

Ubuntu 데스크탑에서는 awk 명령 반환을 찾을 수 없지만 Centos에서는 잘 작동합니다.

내용이 있는 파일을 읽기 위해 test.sh를 만듭니다.

item1:return1
item2:return2
...
item10:return10

test.sh 내용

VAR1=$1
VAR2= `grep "^${VAR1}:" /home/path/file | awk '{print $2;}'`

echo "${VAR2}";

테스트 실행

sh test.sh item1

반품

: not found test.sh: 
: not found test.sh: 

Centos에서 동일한 것을 실행할 때. 반품

return1

awk 명령에 어떤 문제가 있습니까?

답변1

awk 명령에는 아무런 문제가 없습니다. 메시지가 표시된 것처럼 문제를 test.sh찾을 수 없습니다. CentOS는 아마도 경로를 PATH 변수로 설정합니다.

다음으로 실행하세요 sh ./test.sh item1(test.sh가 현재 디렉터리에 있다고 가정합니다).

편집: 스크립트에 더 주의를 기울여야 했는데 :grep에서 문제가 발생했습니다.

VAR1=$1
VAR2=`grep "${VAR1}\:" file | awk '{print $2}'`
echo "${VAR2}";

그러나 awk는 기본적으로 :구분 기호로 인식하지 못하므로 사용해야 했습니다.

item1: return1
item2: return2

이 변경 없이 서버나 Centos에서 어떻게 작동할 수 있는지 전혀 모르겠습니다.

관련 정보