我在 init 脚本中发现了一个错误monit
,现在我想自己修复它。错误的代码是
PID_DIR=$(/bin/basename "$MONIT_PID_FILE")
/bin/mkdir -p -m0700 "$PID_DIR"
/var/run/monit
开发人员希望从$MONIT_PID_FILE
开始创建目录/var/run/monit/monit.pid
,但不幸的是 basename 返回的是文件名,而不是目录路径。这导致目录无法创建,monit 无法启动。
如何从文件的完整路径开始获取文件目录的完整路径?即。/usr/local/myfile.f
=>/usr/local
答案1
使用dirname
获取目录路径(而不是使用basename
)。
参考:目录名