我想设置一个相对于脚本位置的环境变量。我可以在脚本(test.sh)期间轻松找到并设置它:
#!/bin/bash
export MY_VARIABLE=$(dirname $0)
echo MY_VARIABLE is : $MY_VARIABLE
Run Code Online (Sandbox Code Playgroud)
称呼:
./test.sh
Run Code Online (Sandbox Code Playgroud)
输出:
MY_VARIABLE is : .
Run Code Online (Sandbox Code Playgroud)
如果我想在其他脚本中使用该变量,则需要使用 source 命令进行设置。这当然不起作用,因为我现在不是调用 test.sh 脚本,而是调用 source 命令。
source test.sh
Run Code Online (Sandbox Code Playgroud)
输出:
dirname: illegal option -- b
usage: dirname path
MY_VARIABLE is :
Run Code Online (Sandbox Code Playgroud)
有没有办法在脚本中定义一个环境变量,然后可以与 source 命令一起使用?
测试2.sh:
#!/bin/bash
MY_VARIABLE=$(PWD)/$(dirname $BASH_SOURCE)
echo MY_VARIABLE is : $MY_VARIABLE
Run Code Online (Sandbox Code Playgroud)
称呼:
./test2.sh
Run Code Online (Sandbox Code Playgroud)
输出:
MY_VARIABLE is : /some/path/.
Run Code Online (Sandbox Code Playgroud)
称呼:
source ./test2.sh
Run Code Online (Sandbox Code Playgroud)
输出:
MY_VARIABLE is : /some/path/.
Run Code Online (Sandbox Code Playgroud)
感谢@webmark 和@GordonDavisson。
归档时间: |
|
查看次数: |
1678 次 |
最近记录: |