1

スクリプト内から、シェルを変更していくつかの環境変数を設定する読み取り専用スクリプトを実行する必要がある状況に直面しています。ここで、スクリプトからこれらの環境変数にアクセスする必要があります。

状況は script-A のようなものです

#!/bin/csh -f
bash
#set some environment variables A,B,C

script-A への書き込みアクセス権がなく、Script-B に必要な多くの構成を実行します。

script-B を試してみました

#!/bin/csh -f
./script-A
echo $A 

ただし、シェルが変更されたため、$A にアクセスできません。私がこれを行うことができるような回避策はありますか?

理想的には、スクリプト B のコマンドは、スクリプト A の新しい環境で実行する必要があります。手動で対話している間は、最初に script-A を実行してから必要なコマンドを実行できるため、これで問題ありません。ただし、プロセス全体を自動化する必要があります。

4

2 に答える 2

0

script-A が csh スクリプトの場合、

source script-A

これは、script-A に exit ステートメントが含まれている場合でも機能します。

$ cat x.csh 
#!/bin/csh

source y.csh
echo $A - $B

cat y.csh 
#!/bin/csh

set A=10
set B=20
exit 1
set B=30

$ ./x.csh 
10 - 20

script-A が別のシェルにある場合は、そのシェルに合わせて script-B を書き直す必要があります

ああ、ちなみに、可能な場合はCSH を DITCHしてください。

于 2013-06-19T21:53:18.870 に答える