在bash脚本中访问变量
问题描述:
在bash命令行中,我设置了一个变量myPath =/home/user/dir。我创建了一个脚本,将echo $ myPath放入其中,但似乎不起作用。它没有任何回应。我能做些什么来访问脚本中的myPath变量。如果我在命令中写入echo $ myPath,它可以工作,但不能在脚本中使用。在bash脚本中访问变量
答
尝试
export myPath=/home/user/dir
答
你是怎么分配的变量?它应该是:
$ export myPath="/home/user/dir"
然后里面shell程序,如:
#!/usr/bin/env bash
echo $myPath
你会得到想要的结果。
答
你也可以做到这一点,设置myPath变量中只是MyScript可
myPath="whatever" ./myscript
为环境变量承认棘手的语法的详细信息,请参阅: http://www.pixelbeat.org/docs/env.html
答
您必须声明你的变量赋值“导出“:
export myPath="/home/user/dir"
这将导致shell将变量包含在enviro它启动的子流程。 默认情况下,声明的变量(不包含“导出”)不会传递给子过程。这就是为什么你最初没有得到你预期的结果。
在你的bash配置文件中也使用export var - 如果你想让你的脚本访问这些变量。例如JAVA_HOME – LukeSolar 2013-10-17 10:00:02
这是误导。 `export`对当前shell没有可见的影响。当需要使变量的值对从当前shell启动的子进程可见时,它非常有用。 – tripleee 2017-11-28 12:30:02