沒有辦法做到你所要求的。
source envFile
命令和它的替代. envFile
可以非常有幫助。
envFile文件將只是一個環境assingments列表。
FrontOfficeSystem=MyFrontOffice
BackOfficeSystem=myBackOffice
當您在你的腳本「源」的envFile(任何名稱將工作)的命令時,shell讀取的代碼,就好像是直接在主shell腳本。就像'包括'在很多語言。但是命名空間,......沒有。見下。
更多幫助:請參閱indirect references高級Bash腳本,這可能比使用eval ...
(每個下面)更好,但我沒有機會使用它。
最後,你還可以從評估和VARNAME間接受益,即
src=FrontOffice
eval \$${src}System="${src} has data"
src=BackOffice
eval \$${src}System="${src} has data"
不是一個很好的例子,但我沒有訪問到我真的去鎮上這一想法的腳本。它幫助我泛化(sp)一些代碼,否則這些代碼將不得不重複10次,對於每個數據src(我把重複的代碼塊放在for循環中,src名稱作爲for的元素列表) ),那麼評估會將$ {src}系統擴展爲FrontOfficeSystem,BackOfficeSystem)。如果您的src列表中包含空格,則所有投注都將關閉。
在您的終端窗口中使用set -vx
並複製/粘貼上面的代碼以查看它是如何工作的。它可能有幫助。
我希望這會有所幫助。
P.S.因爲你似乎是一個新用戶,如果你得到一個可以幫助你的答案,請記住將它標記爲已接受,並且/或者給它一個+(或 - )作爲有用的答案。
順便說一句,它不是管理員決定的,它是社區本身。話雖如此,我知道沒有這樣做的shell--它們都依賴於內部命令或路徑。如果您想導入命令,請添加到路徑中。 – paxdiablo
謝謝。我想嘗試導入名稱(a.k.a.變量),而不是命令。 –
您始終可以使用'source'從通用腳本加載變量/別名/函數。 –