0

我最近一直在研究一些 bash 脚本,我开始想知道应该设置多大的脚本。

bash 脚本始终在当前目录中运行,因此要使用source您需要源脚本的绝对路径。

我看到了这篇文章,但对于我期望成为常见用例的东西来说,它似乎太复杂了。

是否有惯用的方法可以在与运行脚本相同的目录中获取脚本?

4

2 回答 2

3

您可以使用dirnameand$0来确定当前正在运行的脚本所在的位置(这里 doit2.sh 是与原始脚本位于同一目录中的脚本):

. $(dirname $0)/doit2.sh
于 2013-11-04T02:51:07.157 回答
2

没有 36,000 个解决方案:

1)绝对路径:

source /absolute_path/script.sh # sourcing a script
. /absolute_path/script.sh # sourcing a script
/absolute_path/script.sh # executing a script

2)相对路径:

./script.sh # when script.sh is in the current directory
./dir/script.sh # when script.sh is in the directory 'dir' which is in the current directory
../script.sh # when script.sh is in the parent directory

你也可以使用source. script.sh使用相对路径。

3)使用别名:

echo "alias script='/absolute_path/script.sh'" >> ~/.bashrc
source ~/.bashrc
script # executing script.sh

4)添加到 PATH :

echo "export PATH=$PATH:/absolute_path/script.sh" >> ~/.bashrc
source ~/.bashrc
script.sh # executing script.sh

要了解采购脚本和执行脚本之间的区别,请参阅此主题

于 2013-11-03T23:05:23.173 回答