我發佈了一個小時前的問題,但沒有得到任何答覆,我現在嘗試了一些不同的方法,我將通過包含更少的代碼來簡化我的問題,但是如果您想要看看我正在使用的其他代碼,請檢查我的最後一個問題Parallel Processes in bash bitcoin monitor that records to sql leaking data?。我無法讓這些變量成功傳輸到子shell ./test。感謝您的幫助。陣列的IP端口名稱和地址是在for循環之外定義的,我可以放入一個echo命令來驗證它們是否通過。如何將變量傳遞給bash中的子進程
for ((c=0; c<=$id-1; c++))
do
UnitIP=${IP[$c]}
UnitPort=${Port[$c]}
UnitName=${Name[$c]}
UnitActive=${Active[$c]}
sh -c ". ./test && echo \$UnitIP \$UnitPort \$UnitName \$UnitActive"
done
標題應措詞,一個子進程而不是一個子shell。後者不需要出口。 – Scrutinizer
最簡單的,自包含的測試用例就是'var = value; sh -c'echo $ var'' –
@ that-other-guy:這是一個恰好是shell而不是subhell的子進程。這是一個子shell:'var = value; (echo「$ var」)' – Scrutinizer