Mac-Osx

如何在 Mac OS X 上的 shell 腳本中檢索絕對文件名?

  • May 21, 2019

我想檢索目前執行的腳本文件的絕對文件名。連結也應該解決。

在 Linux 上,這似乎是這樣完成的:

$(readlink -mn "$0")

readlink似乎在 Mac OS X 上的工作方式非常不同。

我讀過這是使用

$(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)"

引用自:https://serverfault.com/questions/40144