0
나는이 아이 스크립트에 내 보낸 변수 id
을 유지 할 수없는 자신을 호출이 매우 간단 bash는 스크립트를쉘 스크립트 변수를 하위 스크립트로 내보내는 방법은 무엇입니까?
1 #! /bin/bash
2
3 SCRIPT="$(realpath "${0}")"
4
5 echo "start script"
6 echo "euid= $EUID"
7
8 if [ $EUID != 0 ]; then
9
10 export id=$EUID
11 sudo ${SCRIPT}
12 exit 0
13 fi
14
15 echo "HERE WE ARE ROOT"
16 echo "euid= $EUID"
17 echo "id= $id"
18
19 exit 0
출력은 : 일반 사용자의
start script
euid= 1000
start script
euid= 0
HERE WE ARE ROOT
euid= 0
id=
EUID
1000이고 내가 뭘 하려는지 루트로 실행되는 자식 프로세스에 EUID
을 유지하는 것입니다.
id
은 하위 스크립트에서 언 바운드입니다.
$ export var=1
$ /bin/bash
$ echo $var
1
$ var=2
$ echo $var
2
$ exit
$ echo $var
1
및 var
가 제대로 여기에 수출되고 있지만 다른 경우에는 차이가 무엇 :
나는 쉘 스크립팅에서 아주 미숙 한 뭔가가 분명하지 않다.
감사합니다.
실제로, 그 설명, 나는 그 보안상의 이유를 잊어 버렸습니다. 감사. – Scab