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