困っていること
下記のようなスクリプトAを実行し、スクリプトA内で
スクリプトBをsourceコマンドで実行しているのですが、exportした変数がブランクになってしまいます。
スクリプトA
bash
1#!/bin/bash 2echo ${var} ←ブランク 3source スクリプトB 4echo ${var} ←VAR=AAAAAAAAAAAA が表示されてほしいがブランク
スクリプトB
bash
1#!/bin/bash 2var="VAR=AAAAAAAAAAAA" 3export var
参考サイト
https://qiita.com/shinyashikis@github/items/294766d75c2ac633e22d
追記
すいません...記載内容ですが、自己判断で勝手に省略してしまった部分があるのでしっかりすべて記載いたします。
(質問にお答えしていただいた方々すいません...)
- 下記parent.shをcronで実行
- parent.sh内でchildA.shを呼び出しし、変数に代入
- parent.sh内でchildB.shを呼び出しし、変数を表示
を実行しています。
具体的なコードは下記です。
parent.sh
bash
1#!/bin/bash 2echo ${var} ←ブランク 3(source childA 2 > $1 ) | awk '{print strftime("%Y/%m/%d %H:%M:%S",systime())" "$0;fflush()}' >> parent.log ←parent.logに対してchildA.shでechoしたものをログ形式で出力 4(source childB 2 > $1 ) | awk '{print strftime("%Y/%m/%d %H:%M:%S",systime())" "$0;fflush()}' >> parent.log ←parent.logに対してchildB.shでechoしたものをログ形式で出力 5echo ${var} ←ブランク
childA.sh
bash
1#!/bin/bash 2var="VAR=AAAAAAAAAAAAA" 3echo ${var} ← parent.logを確認するとVAR=AAAAAAAAAAAAAが出力されている
childB.sh
bash
1#!/bin/bash 2echo ${var} ← parent.logを確認するとブランクが出力されている
以上となります。
不備があり大変申し訳ございませんが、よろしくお願いいたします。


回答4件
あなたの回答
tips
プレビュー