2009-05-02 112 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它启动的子流程。 默认情况下,声明的变量(不包含“导出”)不会传递给子过程。这就是为什么你最初没有得到你预期的结果。