0
I持っていた子スクリプトにエクスポート変数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