Shell 脚本获取当前脚本目录的两种方法
本文将分析以下两种常见的 Shell 脚本获取当前脚本目录路径的代码,并解释其工作原理:
-
CURRENT_DIR="$(cd "$(dirname "$0"") && pwd)" -
CURRENT_DIR=$(cd $(dirname $0); pwd)
这两段代码的作用都是获取当前脚本所在目录的路径,并将结果赋值给变量 CURRENT_DIR。第二种写法使用了更简洁的语法,但两种写法都是正确的。
代码解析:
-
CURRENT_DIR="$(cd "$(dirname "$0"") && pwd)"$0:表示当前执行的脚本文件名。dirname "$0":获取脚本文件所在目录的路径。"$(dirname "$0""):将dirname "$0"的结果用双引号括起来,以确保路径中的空格不会被误解。cd "$(dirname "$0""):将当前目录切换到脚本文件所在目录。&& pwd:执行完cd命令后,使用pwd命令获取当前目录的绝对路径。"$(cd "$(dirname "$0"") && pwd)":整个命令的执行结果被用双引号括起来,并赋值给变量CURRENT_DIR。
-
CURRENT_DIR=$(cd $(dirname $0); pwd)$(dirname $0):获取脚本文件所在目录的路径。cd $(dirname $0):将当前目录切换到脚本文件所在目录。; pwd:在cd命令执行完成后,执行pwd命令获取当前目录的绝对路径。$(cd $(dirname $0); pwd):整个命令的执行结果被赋值给变量CURRENT_DIR。
总结:
两种写法都能够正确地获取脚本所在目录的路径,但第二种写法更加简洁。选择哪种写法取决于个人习惯和代码风格。
原文地址: https://www.cveoy.top/t/topic/mV0U 著作权归作者所有。请勿转载和采集!