我想检索当前执行的脚本文件的绝对文件名。 链接也应该解决。
在Linux上,这似乎是这样做的:
$(readlink -mn "$0")
但是在Mac OS X上, readlink
似乎工作得非常不同。
我读过,这是使用
$(realpath $0)
在BSD中,但那也行不通。 Mac OS X没有realpath
。
任何想法?
我欺骗和使用Perl这个事情:
#!/bin/bash dirname=`perl -e 'use Cwd "abs_path";print abs_path(shift)' $0` echo $dirname
你会认为我只是用perl写完整个脚本,而且我经常这样做,但并不总是如此。
#!/usr/bin/env bash scriptDir="$(cd "$(dirname "$0")" && pwd -P)"