tcsh의 awk에서 환경 설정

tcsh의 awk에서 환경 설정

awk에서 한 줄에 환경 변수를 설정하려고 합니다.

$ <source command> awk '/inst/ { n = split($0,a,"/"); cmd = "setenv " a[n-1] "_ver" $0; system(cmd) }'

그러나 내가 얻은 결과는 "sh: setenv: 명령을 찾을 수 없습니다"입니다.

답변1

setenvcsh 전용 명령이지만 대신 Bourne 쉘( ) system()을 통해 인수를 실행합니다 ./bin/shcshexport VARIABLE=value

그러나 이렇게 해도 아무런 효과가 없습니다. system()새 셸을 시작하고 해당 셸에서 명령을 실행합니다. 명령이 종료되면 셸과 해당 환경이 사라집니다. 따라서 설정한 환경 변수는 곧 사라집니다.

당신이 해야 할 일은 awk실행하고 출력할 명령 목록을 생성하는 것입니다 csh(실행하려고 시도하지 마십시오). 그런 다음 awk읽기 출력을 호출하는 셸을 만들고 awk실행해야 합니다.

eval `the awk command`

관련 정보