몇 사람이 도울 수 있기를 바랍니다. ksh에서 다음을 실행하려고합니다. 에는 var라는 변수와 var1이라는 변수가 있습니다.AIX 조건부 다중 명령 실행
위의 명령을 실행하면 "var"변수에 값이 할당되지 않습니다. 명령이 실행되고 있지만 "var"가 범위를 벗어나서 새 변수를 작성하는 것과 같습니다 (올바른 값 N이 울린 할당 후에 에코를 시도했습니다).
[[ $var1 = "N" ]] || (command 1; var=N; echo $var)
누군가이 문제를 해결할 방법을 알고 있습니까?
이중 파이프를 사용하는 이유는 동일한 조건이 매우 많기 때문에 IF 문을 사용하지 않기 위해서입니다.
감사
는[[ $var1 = "N" ]] || { command 1; var=N; echo $var; }
이렇게하여 그룹화 명령 목록을 subshelling 방지와 같이 대신 (...)의
'(....)의 내부 변수는 서브 쉘'(...)'에 국한되어 있습니다. 당신이보고있는 것은 예상되는 행동입니다. 만약 당신이 서브 쉘을 사용해야한다면, 가장 간단한 것은'echo "$ var">/tmp/varFile'이고'/ tmp/varfile'을 읽으면 값을 얻을 수 있습니다 (다른 해결책이 있지만 쉬운 일이 있습니다) ;-)). 행운을 빕니다. – shellter
고맙습니다. 나는 그것을 대답으로 받아 들일 것이지만 그것을 표시 할 수는 없다. :피. 감사합니다. – sergiopuy
'/ tmp/varfile'을 변수로 읽는 방법에 대한 도움이 필요하면 더 자세한 답변을 쓸 수 있습니다. 다행히 도움이되었습니다. 행운을 빕니다. – shellter