我最近一直在研究一些 bash 脚本,我开始想知道应该设置多大的脚本。
bash 脚本始终在当前目录中运行,因此要使用source
您需要源脚本的绝对路径。
我看到了这篇文章,但对于我期望成为常见用例的东西来说,它似乎太复杂了。
是否有惯用的方法可以在与运行脚本相同的目录中获取脚本?
您可以使用dirname
and$0
来确定当前正在运行的脚本所在的位置(这里 doit2.sh 是与原始脚本位于同一目录中的脚本):
. $(dirname $0)/doit2.sh
没有 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
要了解采购脚本和执行脚本之间的区别,请参阅此主题。