답변:
VAR1=value1 VAR2=value2 myScript args ...
vblank_mode=0 glxgears
. 작동하지만 vblank_mode=0: command not found
실행 후 도 표시 되지만 prepending으로 env
인해 발생하지 않습니다. [테스트 중 ...] 분명히 zsh는 그것을 좋아하지 않지만 (아직 올바르게 사용하고 있습니다) bash는 괜찮습니다. env
이제부터는 그 방법으로 갈 것 같아요 .
VAR1="hello" echo $VAR1
아무것도 반환하지 않는 것은 어떻습니까?
VAR1="hello" bash -c 'echo $VAR1'
env VAR=value myScript args ...
VAR=value myScript args ...
PATH=$PATH:XYZ echo $PATH | grep XYZ
그래도 출력이없는 이유는 무엇입니까? 2. 사용과 사용하지 않는 것의 차이점은 무엇입니까 env
?
PATH=$PATH:XYZ sh -c 'echo $PATH' | grep XYZ
- 작은 따옴표는 여기에 열쇠
env
그것을 사용하는 것과 사용 하지 않는 것의 차이점은 무엇입니까 ?
IFS=$'\n' for l in lines; do ... done
그냥 넣어
export HOME=/blah/whatever
스크립트에서 변경하려는 지점에서. 각 프로세스에는 고유 한 환경 변수 세트가 있으므로이 정의는 스크립트가 종료 될 때 자동으로 의미가 없어집니다 (그리고 환경이 변경된 bash 인스턴스와 함께).
export
변수를 서브 쉘에 전달하지만 부모 쉘은 제어하지 않습니다. "#! / bin / sh"등으로 시작하는 스크립트를 작성하는 경우 설정 한 모든 변수는 스크립트가 종료 될 때 사라집니다.
source
명령을 입력하는 것과 동일한 셸에서 실행될 스크립트 를 명시 적으로 지정한 경우에만 가능합니다 .
$HOME
스크립트에서 실행되는 명령으로 상속 받으려면 내보내기가 필요합니다 . 그리고 그가 그렇지 않고의 설정이 $HOME
스크립트 자체의 이익만을위한 것이라면 아마도 스크립트를 수정하여 $HOME
.