2012-04-17 2 views
2

나는 내 스크립트의 끝에 다음 한 설정된다. A/홈은/usr/폴더 내 계정에 존재하지 않기 때문에 경로 변수가되지는 새 값

END PATH - /usr/openwin/bin:/opt/plat/AUTOSYS/4.0/autosys/bin:/usr/kerberos/bin::/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/opt/netezzaClient/bin:/xenv/ant/X/1.8.0/bin:/export/opt/jdk/1.6.0_16/bin:/opt/edtsesn/share/bin:/xenv/cvs/sun4/5.6p4/1.10/bin:/xenv/rationalrose/sun4/5.x/6.0.9242/rose/bin:/opt/netscape/4.70_B2/bin:/opt/SCssh/3.4_C0/bin:/opt/PDolvwm/bin:/usr/kerberos/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/ucb:/usr/bin:/usr/local/etc:/bin:/usr/local/bin:/etc:/software/scripts:/usr/5bin:/usr/demo:/usr/openwin/bin:/usr/tran/sparc/lib:/usr/ccs/bin:/opt/sybase/1192/bin:/tmp/wm40824:/opt/edtsdba/bin:/xenv/scripts/bin:/xenv/workshop/sun4/5.8mu4/6.1a/bin:/home/pj03962/1192/bin:/home/pj03962/1192/bin:/xenv/java/X/1.6.0_11/bin:/xenv/cvs/:/xenv/java/X/1.6.0_11/bin:/xenv/cvs/sun4/5.6p4/1.10/bin:/xenv/ant/sun4/5.x/1.6.2/bin:/opt/SCssh/3.7.1_C0/bin:/opt/xemacs/bin:/home/pj03962/125/OCS-12_5/bin:/home/pj03962/125/125/bin:/opt/perforce/bin:/opt/netezzaClient/bin:/opt/netezzaClient/bin 

아직

bash-3.00$ env $PATH 
env: /usr/kerberos/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin: No such file or directory 

해당 파일은 제공하지 않습니다. 그러나 이것은 여전히 ​​경로 변수에 다른 값을 추가하지 않은 이유에 대해서는 밝혀지지 않았습니다.

+1

'env $ PATH'에 무엇을 할 것으로 기대 했습니까? –

+0

$ PATH로 설정된 값 목록을 보여줍니다. 이제 print 문에 값이 포함되어야합니다. – Will

답변

3

소싱하지 않고 스크립트를 호출했다고 생각합니다. 예를 들어, 스크립트의 이름이 "myscript.sh"인 경우 "./myscript.sh"또는 "bash myscript.sh"를 호출했을 수 있습니다. 스크립트 내부의 env var 수정은 스크립트를 누출시키지 않으므로 원본 ('source'또는 '.')을 먼저 호출해야합니다. 예 : myscript.sh에서

. ./myscript.sh 

변경 사항은 현재 환경을 수정합니다.

"env $ PATH"의 경우 : "PATH"변수에서 명령을 실행하려고하므로 오류라고 생각합니다. 존재하지 않는 파일 (/ usr/kerberos/bin :/bin : ...은 시스템의 기존 파일 이름이 아닙니다!). 대신에 다음을 사용해야합니다 : echo $ PATH

+1

당신이 맞습니다! – Will