我想设置一个相对于脚本位置的环境变量。我可以在脚本(test.sh)的持续时间内轻松找到并设置它:
#!/bin/bash
export MY_VARIABLE=$(dirname $0)
echo MY_VARIABLE is : $MY_VARIABLE
呼叫:
./test.sh
输出:
MY_VARIABLE is : .
如果我想在其他脚本中使用该变量,我需要使用source命令设置它。这当然行不通,因为我现在没有调用test.sh脚本,而是调用source命令。
source test.sh
输出:
dirname: illegal option -- b
usage: dirname path
MY_VARIABLE is :
有没有办法在脚本中定义环境变量,然后可以与source命令一起使用?
看到 这个问题 ,和 BashFAQ#28 。
—
Gordon Davisson
@GordonDavisson谢谢你的提示。使用$ BASH_SOURCE代替$ 0工作正常,我可以解决我的问题。我只缺少4个声誉来回答问题并接受答案,所以这里是答案中的答案。这个解决方案适用于相对路径,在我的情况下也可以:test.sh#!/ bin / bash echo pwd / dir:$(PWD)/ $(dirname $ BASH_SOURCE)
—
Sacha Guyer
@SachaGuyer,刚给你一些票,你应该让代表现在这样做。
—
webmarc