bash의 모든 명령에 의해 어떤 실행 파일이 실행되는지 알고 싶습니다.
예:
- 여기에 Firefox가 설치되어 있습니다
/usr/bin/firefox
.$PATH
alias browser=firefox
alias br=browser
이제 이와 같은 내용을 입력하고 싶습니다. getexecutable "br"
그러면 표시되어야 합니다./usr/bin/firefox
답변1
다음은 간단한 앨리어싱 사례에서 작동할 주석에 추가로 작성한 빠른 스크립트입니다. 그러나 매개변수 등이 있는 모든 작업에는 비참하게 실패합니다.
cmd="$1"
type=aliased
while [ "$type" = "aliased" ]; do
output="$(type "$cmd")"
type="$(cut -d ' ' -f 3 <<< "$output")"
cmd="$(cut -d '`' -f 2 <<< "$output" | tr -d \')"
done
echo "$output"
서브쉘을 생성하면 로컬 별칭이 제거될 수 있으므로 이를 얻으려면 (아이러니하게도!) 별칭을 사용해야 합니다.