2012-07-24 26 views
1

我正在运行linux 2.6。在bash shell中,我想要提供一个文件。如果我在当前目录作为源文件,然后我可以做如何捕获源代码后的命令行参数

source abc.sh 

但是如果我在其他文件夹,我就这么

source /path-to/abc.sh 

我想捕捉无论是类型化在脚本命令行中的命令源之后,例如,我想访问“abc.sh”,在后一种情况下,我想访问abc.sh中的“/path-to/abc.sh”

谢谢

回答

4

您正在寻找包含当前正在处理的脚本的$BASH_SOURCE变量。

例如,如果/tmp/a.sh是:

echo $BASH_SOURCE 

然后:

$ cd /tmp 
$ . a.sh 
a.sh 
$ . /tmp/a.sh 
/tmp/a.sh 
$ . ../tmp/a.sh 
../tmp/a.sh 

你可以找到更多关于它的info bash