[bash] 쉘에 정의 된 함수를 어떻게 나열합니까?
별명을 입력하여 모든 별명 목록을 표시 할 수 있습니다.
그러나 기능을 위해 내가 할 수있는 일은 grep my .bash_profile
입니다.
그것은 보조 파일에 정의되거나 동적으로 정의 된 파일이 아닌 해당 파일의 파일 만 가져옵니다.
현재 정의 된 기능을 찾는 더 편리한 방법이 있습니까?
답변
declare -F
내장 명령에 대한
-f
옵션
과 함께 기능 이름과 정의가 나열 될 수 있습니다declare
(배시 내장 참조).-F
하는 옵션declare
만 (선택적으로 소스 파일과 줄 번호)를 함수 이름을 나열합니다.
답변
bash 쉘을 가정 :
typeset -f
기능을 나열합니다.
typeset -F
함수 이름 만 나열합니다.
답변
declare -F
모든 기능의 이름을 알려줄 것입니다
type function_name
특정 기능의 소스를 제공합니다
답변
declare -F
실제로 함수 이름뿐만 아니라 선언 명령을 인쇄합니다.
$ declare -F
declare -f function1
declare -f function2
compgen -A function
기능 이름 만 인쇄 하는 데 사용할 수 있습니다 .
$ compgen -A function
function1
function2
답변
조판 이 더 이상 사용되지 않습니다. 다음을 사용하십시오.
declare -f
또는
declare -f function_name
또는
type function_name
답변
set | grep " ()"
grep 대신 fgrep 또는 hgrep을 사용할 수도 있습니다
(hgrep는 제가 개인적으로 좋아하는 것입니다. grep이지만 ‘grep-ped’결과를 강조 표시합니다.
hgrep 은 여기에서 찾을 수 있습니다 : ACME Labs hgrep
답변
나는 아직도 배우고,하지만 같은를 원하기 때문에 이후에이 문제를 발견하고 그 답이 없음 전문가는 아니지만, 내가 쓴 (이하 “을 기반으로 다음 전형적인 바울의 선언 “답) 나는 후였다 궁극적으로 무엇을 나에게 제공합니다 : 별명 및 함수의 형식화 된 목록 :
function functionaliaslist() {
echo
echo -e "\033[1;4;32m""Functions:""\033[0;34m"
declare -F | awk {'print $3'}
echo
echo -e "\033[1;4;32m""Aliases:""\033[0;34m"
alias | awk {'print $2'} | awk -F= {'print $1'}
echo
echo -e "\033[0m"
}
그것은 Lri의 대답 을보기 전에 이루어 졌으므로 그로부터 외삽하여 대신에 declare
and alias
를 적절한 compgen
명령으로 바꿉니다 .
function functionaliaslist() {
echo
echo -e "\033[1;4;32m""Functions:""\033[0;34m"
compgen -A function
echo
echo -e "\033[1;4;32m""Aliases:""\033[0;34m"
compgen -A alias
echo
echo -e "\033[0m"
}
내가 원하는 것에 대한 치료를 했어요. 다른 사람에게 도움이되는 경우 공유.
많은 다른 “조치”가 가능합니다 compgen -A [action]
( compgen
물론 다른 옵션도 있습니다 ). 나는 좋은 쓰기 업 발견 여기에 (때문에 또한 사람이 페이지에 대한 링크를 포함하는 man compgen
경우에 작동하지 않습니다).