2013-02-15 3 views
6

내장 된 bash 함수의 소스를 찾는 방법은 무엇입니까?bash 내장 함수 bash 소스 코드

$type -t MY_APP 
function 

나는이 코드가있어 참조 :

type MY_APP 
code 

질문은 다음과 같습니다

  1. 가 어디가 저장되는

    가 나는 함수 것을 알고?

  2. 어떻게 수정할 수 있습니까?

답변

7

당신은 이런 식으로 작업을 수행 할 수 있습니다

# Turn on debug 
$ shopt -s extdebug 

# Print out the function's name, line number and file where it was sourced from 
$ declare -F my_function 
my_function 46 /home/dogbane/.bash/.bash_functions 

# Turn off debug 
shopt -u extdebug 

은 (당신이 위에서 발견) 함수 정의가 포함 된 파일을 열고 기능을 편집 할 수 있습니다. 함수를 편집하고 파일을 저장하십시오. 다음과 같이 쉘로 소스 :

$ . /path/to/function_file 
+0

작동합니다! declare -F my_function을 시도했지만 디버그 기능이없는 함수 이름 만 출력합니다. 좋은 충고에 감사드립니다. – idobr

+0

+1 나는'extdebug'를 한번도 사용하지 않았기 때문에, 함수가 소스 화 된 파일을 볼 수있는 방법이 있다는 것을 알지 못했습니다. 아주 좋아. – chepner

+0

이것은 훌륭합니다! –

0

기능은 일반적으로 .bashrc 파일에 저장 (또는 또한 단지 /etc/bashrc 일부 시스템에 존재 /etc/bash.bashrc에)있다. 수퍼 유저의 This answer에는 .bashrc 파일에 대한 몇 가지 좋은 정보가 있습니다. 마찬가지로 this question 유닉스에서 & 리눅스 사이트는 별명을 붙이거나, 스크립트를 작성할 때, 그리고 함수를 작성하는 경우에 가장 적합합니다.

+0

링크 된 주제가 흥미 롭습니다. 나는 .bashrc와 .bashprofile을 검색했는데, 정의 된 함수는 다른 곳에서 사용되었다. @dogbane의 대답은 나를 도왔다. – idobr