스크립트 이름이 이라고 가정해 보겠습니다 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
).
관련 정보: