我想设置一个相对于脚本位置的环境变量。我可以轻松找到并设置该脚本(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 :
有没有办法在脚本中定义环境变量,然后可以与源命令一起使用?
答案1
测试2.sh:
#!/bin/bash
MY_VARIABLE=$(PWD)/$(dirname $BASH_SOURCE)
echo MY_VARIABLE is : $MY_VARIABLE
称呼:
./test2.sh
输出:
MY_VARIABLE is : /some/path/.
称呼:
source ./test2.sh
输出:
MY_VARIABLE is : /some/path/.
感谢@webmark 和@GordonDavisson。