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

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

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

    #!/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

관련 정보