2017-03-19 4 views
0

2つのファイルを使用してシェルセッションの定数の連想配列を作成しようとしています。メイン配列は1つ、2つ目のファイルはUbuntuやOSXなどの環境固有の値です。Bashの.shファイルの可変スコープ

ddops[os]='osx'; 

main.sh

declare -A ddops; 
ddops[main]='test val'; 

os.shが狙いので、スクリプトを実行しているURLを介して設定することです。これらは現在含まれているをテストする

を使用します。

私はにに行くために、この配列を宣言することができますどのように私は、これはスコープの問題かもしれないと思う
echo ${ddops[main]}; 
echo ${ddops[os]}; 

を与えている端末の空の出力からテストするとき

./mainenv.sh; 
./osenv.sh; 

が含まれてい

、シェルにアクセスできますか?

curlは正しく実行され、上記のコードを含むmainenv.shとosenv.shを作成します。 これらのファイルの実行は、保存されたディレクトリ内で実行されます。

+0

「curl」の出力は何ですか? 'mainenv.sh'と' osenv.sh'はどこに住んでいますか? – chepner

+0

は分かりやすいように編集され、出力はURLからファイルを作成し、実際に作成されたとおりに成功したものとして表示されます。 mainenvとosenvは777にchmodされており、実行されているディレクトリはそのディレクトリ内です。 – Datadimension

答えて

0

スコープの問題を前提として、すべてを1つのファイル(bashcompile)にコンパイルしてからcp.bash_profileへ、source ~/.bash_profileで再ロードしました。

上記のようなテストが成功しました。

関連する問題