我有兩個腳本1.sh和2.sh.導出不能在我的shell腳本中工作
1.sh如下:
#!/bin/sh
variable="thisisit"
export variable
2.sh如下:
#!/bin/sh
echo $variable
根據我讀,做這樣的(出口)可以訪問一個變量從另一個shell腳本。但是這不適用於我的腳本。有人可以請幫忙嗎?提前致謝。
我有兩個腳本1.sh和2.sh.導出不能在我的shell腳本中工作
1.sh如下:
#!/bin/sh
variable="thisisit"
export variable
2.sh如下:
#!/bin/sh
echo $variable
根據我讀,做這樣的(出口)可以訪問一個變量從另一個shell腳本。但是這不適用於我的腳本。有人可以請幫忙嗎?提前致謝。
export
在執行shell的環境中放入一個變量,以便將其傳遞給腳本執行的進程,但不傳遞給調用腳本或任何其他進程的進程。嘗試執行
#!/bin/sh
FOO=bar
env | grep '^FOO='
和
#!/bin/sh
FOO=bar
export FOO
env | grep '^FOO='
看到export
效果。
爲了得到變量從1.sh
到2.sh
,無論是從1.sh
打電話2.sh
,或導入1.sh
在2.sh
:
#!/bin/sh
. ./1.sh
echo $variable
如果您要執行類似sh 1.sh
或./1.sh
那麼你的文件,你在輔助執行它-貝殼。
如果你想在當前shell中所做的更改,你可以這樣做:
. 1.sh
# OR
source 1.sh
請考慮通過reference-documentation去。
「當一個腳本使用運行source
[或.
]它運行在現有外殼內,由腳本創建或修改任何變量將腳本完成之後仍然可用。相反如果腳本只是運行作爲filename
,那麼將生成一個單獨的子shell(具有完全獨立的一組變量)來運行該腳本。「
以及你如何執行這些shell腳本? – linuxeasy
另請參閱:http://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-scrip#176788和http:// unix.stackexchange.com/questions/3507/difference-between-environment-variables-and-exported-environment-variables-in-b – lesmana
我首先在終端運行1.sh,然後在同一終端運行2.sh。 .. – Xander