2013-02-15 12 views

Odpowiedz

7

Można to zrobić tak:

# 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 

Aby zmodyfikować funkcję, otwórz plik zawierający definicję funkcji (którą znaleziono z góry). Edytuj funkcję i zapisz plik. Następnie zaopatrywać go w swojej skorupie, tak:

$ . /path/to/function_file 
+0

to działa! Próbowałem zadeklarować -F my_function, ale wypisuje tylko nazwę funkcji bez funkcji debugowania. Dzięki za dobrą radę. – idobr

+0

+1 Nigdy nie używałem 'extdebug', więc nie wiedziałem, że istnieje sposób, aby zobaczyć plik, z którego pochodzi funkcja. Bardzo dobrze. – chepner

+0

To jest genialne! –

0

Funkcje są zwykle przechowywane w pliku .bashrc (lub w /etc/bash.bashrc, który również występuje jako właśnie /etc/bashrc na niektórych systemach). This answer z SuperUser ma kilka dobrych informacji na temat pliku .bashrc. Podobnie, this question na stronie Linuxa Unix & podaje szczegóły, kiedy najlepiej pseudo, kiedy skryptować i kiedy pisać funkcję.

+0

Powiązany temat jest interesujący. Szukałem w .bashrc i .bashprofile, zdefiniowana funkcja znajdowała się w innym miejscu. Odpowiedź @ dogbane pomogła mi. – idobr