둘 사이의 실제 차이점은 무엇입니까?
env VARIABLE=VALUE command
그리고
VARIABLE=VALUE command
bash 호환 쉘에서?
참고: 제가 직접 몇 가지 테스트를 해봤는데 아무런 차이가 없습니다.
편집: 예는 다음과 같습니다
EDITOR=nano visudo
그리고
env EDITOR=nano visudo
답변1
외부 명령의 결과는 크게 다르지 않습니다. 실행에는 쉘이 수행하는 env
추가 변수 할당 구문 분석만 포함됩니다 . 쉘에서는 그렇게 간단하지 않은 환경을 정리하므로 더 유용할 것입니다.exec
env -i
두 경우 모두 명령 대체와 같은 확장은 VAR=$(somecmd)
할당이 발생하기 전에 쉘에 의해 실행되며 두 경우 모두 마찬가지입니다 PATH
. 내가 생각할 수 있는 유일한 차이점은 _
그 가치입니다.Bash는 실행하는 명령의 이름으로 설정됩니다.( env
하지만). 물론 그렇지 않은 경우 env
셸에 내장된 명령 버전을 실행할 수도 있습니다.