셸 스크립트에서 셸 명령을 실행하면 하위 셸 프로세스가 생성됩니다. 프로세스가 생성되지 않습니다. fork function
? 내보낼 수없는 변수가 상속되지 않는 이유는 무엇입니까? 에서 fork
상위 프로세스의 모든 컨텍스트를 하위 프로세스에 복사해야합니다.
a=x; sh -c "echo $a"
나는 그것을 발견한다. x
가 올바르게 표시됩니다. 너 뭐하고 있니?
a=x
변수 정의, 하위 쉘 열기 sh
과 echo $a
, a의 값은 상속되지 않습니다. 왜 그런지 알고 싶어? 하위 셸이에 의해 생성되지 않습니다 fork()
?
a
이전에 정의되지 않았으므로 a=x
그랬다. 변수를 정의하고 그 변수를 로컬 변수로 정의하면 값이 상속 되었음이 입증됩니다. 나도 몰라. fork()
또는 vfork()
하위 셸을 만드는 데 사용되지만 어느 것이 사용되는지는 예상대로 작동하는 것으로 보입니다. 상속받지 않는다고 생각하게하기 위해 당신은 무엇을하고 있습니까?
a=x; sh -c 'echo $a'
당신이 상속을 시험하고 싶다면.