【发布时间】:2019-07-14 18:51:31
【问题描述】:
我不想通过将脚本添加到我的 Path 变量来从任何目录执行 Bash 脚本。
我希望能够使用该文件的目录路径从任何目录执行脚本......但是我要执行的文件来自其他文件,这就是问题所在。
如果我在目录file 中有两个脚本myFunctions.sh 和sourceFunctions.sh
sourceFunctions.sh
#!/bin/bash
source ./myFunctions.sh
echoFoo
myFunctions.sh
function echoFoo()
{
echo "foo"
}
我可以运行 myFunctions.sh 和 foo 将打印到控制台,但如果我进入一个目录并运行 myFunctions.sh 我得到错误
cd ..
file/sourceFunctions.sh
-bash: doFoo.sh: command not found
除非我在sourceFunctions.sh 中将source file/myFunctions.sh 更改为source file/myFunctions.sh。
那么我怎样才能独立于我的工作目录进行源代码,以便我可以从任何我想要的工作目录运行sourceFunctions.sh?
谢谢
【问题讨论】:
-
这是怎么复制的?我没有尝试将 bash 脚本添加到路径变量
-
也许在源命令中添加
pwd?也许 pwd 不起作用,但 $BASH_SOURCE 起作用 unix.stackexchange.com/questions/4650/… ? -
我添加了一个答案,可能不是最佳答案,但它有效