我有一个 bash 脚本,在my-script.sh从根目录向上 2 层的文件夹中调用,我希望从该文件夹中调用/执行该脚本
/folder1
/folder2/
- my-script.sh
- do-it.sh
Run Code Online (Sandbox Code Playgroud)
我的脚本.sh
#!/bin/bash
./do-it.sh
Run Code Online (Sandbox Code Playgroud)
如果我从根文件夹执行,它会失败,因为它尝试在同一文件夹中my-script.sh查找。do-it.sh
folder1/folder2/my-script.sh: line 3: ./do-it.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我想正确执行 my-script.sh 脚本,我必须先进入folder2,然后他们执行它
cd /folder1/folder2
./my-script.sh
Run Code Online (Sandbox Code Playgroud)
有没有办法从根文件夹执行它,因为它是从folder2执行的?
小智 5
为了使我的脚本在任何地方运行,我通常添加此行来获取包含脚本的文件夹
script_folder="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
$script_folder/my-script.sh
Run Code Online (Sandbox Code Playgroud)