env 및 start.env는 모든 셸에서 실행해야합니다. 실제로 KORN을 제외하고는 env 변수 설정이 예상대로 작동하지 않습니다. 예를보십시오.korn 셸 및 환경 변수
파일 set.env :
#!/bin/bash
export MY_VAR="home" || setenv MY_VAR "home"
파일 start.sh :
#!/bin/bash
command . ./set.env || source set.env
echo "$MY_VAR"
내가 변수의 인쇄를 볼 수 있습니다. ksh에서 터미널에 에코하려고하면 정의되지 않은 상태가됩니다.
내 세션에서 $ MY_VAR이 (가) 표시됩니다. 어떤 아이디어가 있습니까? // 빨간 모자로 실행
'setenv'는 csh입니다. 완전하게 비 POSIX 호환 쉘을 지원해야합니까, 아니면 POSIX sh (대쉬, 애쉬, & c), ksh 및 bash 충분합니까? –
BTW, 어떤 ksh를 사용하고 계십니까? 예를 들어 mksh 인 경우 David-Korn이 작성한 실제 ksh가 아닙니다. –