2009-05-02 113 views
9

在bash命令行中,我設置了一個變量myPath =/home/user/dir。我創建了一個腳本,將echo $ myPath放入其中,但似乎不起作用。它沒有任何迴應。我能做些什麼來訪問腳本中的myPath變量。如果我在命令中寫入echo $ myPath,它可以工作,但不能在腳本中使用。在bash腳本中訪問變量

回答

8

嘗試

export myPath=/home/user/dir 
+1

在你的bash配置文件中也使用export var - 如果你想讓你的腳本訪問這些變量。例如JAVA_HOME – LukeSolar 2013-10-17 10:00:02

+0

這是誤導。 `export`對當前shell沒有可見的影響。當需要使變量的值對從當前shell啓動的子進程可見時,它非常有用。 – tripleee 2017-11-28 12:30:02

18

你是怎麼分配的變量?它應該是:

$ export myPath="/home/user/dir" 

然後裏面shell程序,如:

#!/usr/bin/env bash 
echo $myPath 

你會得到想要的結果。

1

您必須聲明你的變量賦值「導出「:

export myPath="/home/user/dir" 

這將導致shell將變量包含在enviro它啓動的子流程。 默認情況下,聲明的變量(不包含「導出」)不會傳遞給子過程。這就是爲什麼你最初沒有得到你預期的結果。