スクリプト名がだとしましょうmyscript
。これはシンボリックリンクです。thescript_1.91.sh
リンク先の名前を取得する方法はありますか?例:ログファイルに書きたいです。
cat <<EOF
#########################
`basename $0`
`date -R`
#########################
EOF
$ 0はサブシェルのファイルパラメータ名、つまり「myscript」を格納します。
ここでリンク先の名前を取得する方法はありますか?
答え1
システムにreadlink
ユーティリティがある場合は、これを実行できます。
cat <<END_MESSAGE
#########################
$( basename "$( readlink -f "$0" )" )
$( date -R )
#########################
END_MESSAGE
この-f
オプションは、最初のリンクだけでなく、指定されたパス名のすべてのシンボリックリンクを再帰的に解決するために使用されます。readlink
システムのマニュアルを参照してください(man 1 readlink
)。
関連情報: