다음과 같은 기능이 있는 경우:
#!/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