0
我有一個主外殼文件A.sh
,它通過執行它調用B.sh
。我想知道如何從B.sh
到A.sh
返回一個變量?如何在shell及其子shell進程之間進行通信? (通過執行不呼叫)
例如
#B.sh
a=123
#A.sh
./B.sh
echo $a
我期待在終端上的結果123
。我知道上述不起作用,請告訴我如何實現我想要的。謝謝。
我有一個主外殼文件A.sh
,它通過執行它調用B.sh
。我想知道如何從B.sh
到A.sh
返回一個變量?如何在shell及其子shell進程之間進行通信? (通過執行不呼叫)
例如
#B.sh
a=123
#A.sh
./B.sh
echo $a
我期待在終端上的結果123
。我知道上述不起作用,請告訴我如何實現我想要的。謝謝。
B.sh
不能影響A.sh
的環境。有兩種選擇。
已將B.sh
寫入標準輸出,然後捕獲其輸出。
a=$(./B.sh)
$(...)
是POSIX標準的一部分,但如果由於某種原因,你正在使用一個shell不支持這種語法,老形式
a=`./B.sh`
可能工作。
已將B.sh
寫入文件,並在B.sh
退出後從文件中讀取A.sh
。
它應該工作... –
它並不是因爲我通過執行呼叫而不是採購。如果我使用。 ./ B.sh然後它會工作。但我有限地使用執行。 –
那麼爲什麼你「有限地使用執行」? – villintehaspam