감소 :변수의 값을 동적으로 계산하고 명령에서 사용하는 방법은 무엇입니까? 나는 간단한 예에 할 노력하고있어
temp: Undefined variable.
이 어떻게 (쉘 불가지론 방법으로) 작동해야합니까 :
env temp=`pwd` echo "$temp"
나는이 메시지가?
pwd
의 결과가 인쇄되기를 기대하고 있습니다.
실제 요구 사항은 pwd
대신에 복잡한 표현식을 사용하고 "echo
"대신 스크립트를 사용하고 해당 스크립트의 인수로 변수 $temp
을 사용합니다.
또한이 변수는이 단일 명령에 대해서만 설정하고 전체 쉘 (또는 이후의 서브 쉘)에 대해서는 설정하지 않습니다.
이 필요합니까 이유에 대한
sh
이 같은 및bash
그리고 이것에 대해? 쉘은 명령이 실행되기 전에'$ temp'를 확장하므로 환경의 내용은 무의미합니다. – chepner
@ jonathan-leffler 나는 이것이 'bash'부분의 속임수이지만'csh' 부분은 아니라고 생각한다. – davejagoda
'csh' 부분에 대한 정답은 "바다 쉘을 사용하지 말고 해상에 바다 쉘을 남겨 두십시오. (행운과 함께, 물결이 그들을 씻을 것입니다)". 코드가 인수와 환경 변수로 'temp'를 전달하려고하는 이유는 명확하지 않습니다. 'pwd' 대신에'pwd'와 스크립트 대신에'echo' 스크립트를 사용한다면 스크립트 전체를 줄 바꿈해야하고 스크립트는 C 쉘 스크립트가 아닌 Bourne/Korn/POSIX/Bash 쉘 스크립트 여야합니다 . –