다음과 같은 기능이 있는 경우:
#!/usr/bin/env bash
function foo {
}
위 함수는 .bash_profile 또는 어딘가에 있습니다.
이를 사용하면 which foo
쉘 스크립트에서 이 명령의 위치가 제공되지 않습니다.
grep
그것이 어디에 있는지, 아니면 최선의 선택 인지 알 수 있는 방법이 있나요 ?
답변1
이 질문은 이미 답변되었습니다.여기. 따라서 이 사실에서 추론할 수 있는 두 가지 사항은 다음과 같습니다.
- 여기에 질문을 게시하기 전에 더 나은 조사를 해야 합니다(하지만 우리 모두는 때때로 게으릅니다).
grep
당신이 원하는 것을 하는 것 보다 더 나은 방법이 있습니다
따라서 다음과 같이 PATH에서 소스 파일과 쉘 함수의 행 번호를 얻을 수 있습니다.이 답변)
# Turn on extended shell debugging
shopt -s extdebug
# Dump the function's name, line number and fully qualified source file
declare -F foo
# Turn off extended shell debugging
shopt -u extdebug
답변2
which
경로만 검색합니다. bash가 실제로 실행하는 내용을 보려면 내장 명령을 사용하십시오 type
.
type foo