在bash命令行中,我设置了一个变量myPath = / home / user / dir。我创建了一个脚本,我在其中放置了echo $ myPath,但它似乎没有用。它没有回音。如何在脚本中访问myPath变量。如果我在命令中编写echo $ myPath,它可以工作,但不在脚本中。
答案 0 :(得分:22)
你是如何分配变量的?应该是:
$ export myPath="/home/user/dir"
然后在shell程序中,如:
#!/usr/bin/env bash
echo $myPath
你会得到理想的结果。
答案 1 :(得分:9)
尝试
export myPath=/home/user/dir
答案 2 :(得分:6)
您也可以这样设置myPath变量仅用于myscript
myPath="whatever" ./myscript
有关环境变量的公认棘手语法的详细信息,请参阅: http://www.pixelbeat.org/docs/env.html
答案 3 :(得分:2)
您必须使用“export”声明您的变量赋值:
export myPath="/home/user/dir"
这将导致shell将变量包含在它启动的子进程的环境中。 默认情况下,您声明的变量(没有“export”)不会传递给子流程。这就是为什么你最初没有得到你期望的结果。