학습 강타 책은 서브 쉘은 환경을 상속 언급은 variabels 및 파일 기술자, ... 등 그리고 내가 알고있는배쉬 서브 쉘 신비
$ var=15
$ (echo $var)
15
$ ./file # this file include the same command echo $var
$
의 수출하지 않는 변수를 상속하지 않습니다 shell은() case와 ./file을위한 두 개의 서브 쉘을 만들지 만,() 케이스에서는 export되지 않고 var 변수를 식별하고 ./file의 경우에는 식별하지 못합니다.
# Strace for()
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f24558b1a10) = 25617
# Strace for ./file
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f24558b1a10) = 25631
나는 이런 방법을 알아 내기 위해 strace를 사용하려고하고 놀랍게도 내가 복제 시스템 호출에 동일한 인수를 사용하는 bash는 그래서 이것이 의미하는 발견의 두 갈래 과정()와 ./file는해야 부모의 프로세스 주소 공간이 같아서 왜 varible이 서브 쉘에 보이고 동일한 인수가 복제 시스템 호출에 기반을 두지 만 ./file의 경우에는 발생하지 않습니다.
일단 수출, 변수가 실행시에 모든 아이들 공정에 사용되는export var=15
(시간을 내 보내지) :
()에 대한 strace는 어떻게 했습니까? –