디스크에서 쉘/배시 기능의 위치 찾기

디스크에서 쉘/배시 기능의 위치 찾기

다음과 같은 기능이 있는 경우:

    #!/usr/bin/env bash

    function foo {

    }

위 함수는 .bash_profile 또는 다른 곳에 있습니다.

이를 사용하면 which foo쉘 스크립트에서 명령 위치를 제공하지 않습니다.

위치를 찾을 수 있는 방법이 있나요? 아니면 grep최선의 선택인가요?

답변1

이 질문에는 이미 답변이 있습니다.여기. 따라서 이 사실로부터 두 가지 사실을 알 수 있습니다.

  1. 여기에 질문을 게시하기 전에 더 잘 조사해야 합니다(그러나 우리는 때때로 게으릅니다).
  2. 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

관련 정보