awk에서 한 줄에 환경 변수를 설정하려고 합니다.
$ <source command> awk '/inst/ { n = split($0,a,"/"); cmd = "setenv " a[n-1] "_ver" $0; system(cmd) }'
그러나 내가 얻은 결과는 "sh: setenv: 명령을 찾을 수 없습니다"입니다.
답변1
setenv
csh 전용 명령이지만 대신 Bourne 쉘( ) system()
을 통해 인수를 실행합니다 ./bin/sh
csh
export VARIABLE=value
그러나 이렇게 해도 아무런 효과가 없습니다. system()
새 셸을 시작하고 해당 셸에서 명령을 실행합니다. 명령이 종료되면 셸과 해당 환경이 사라집니다. 따라서 설정한 환경 변수는 곧 사라집니다.
당신이 해야 할 일은 awk
실행하고 출력할 명령 목록을 생성하는 것입니다 csh
(실행하려고 시도하지 마십시오). 그런 다음 awk
읽기 출력을 호출하는 셸을 만들고 awk
실행해야 합니다.
eval `the awk command`