Відобразити функціональне тіло в Bash


14

У мене у .bashrcфайлі встановлено кілька функцій . Я хотів би просто відобразити фактичний код функції, а не виконувати її, щоб швидко посилатися на щось.

Чи є якийсь спосіб, ми могли б побачити визначення функції?

Відповіді:


15

Варіант declareвбудованого -f:

bash-4.2$ declare -f apropos1
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}

Я використовую typeдля цієї мети, він коротший на тип;)

bash-4.2$ type apropos1
apropos1 is a function
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}

6

Ви можете використовувати typeкоманду для цього.

type yourfuncбуде надрукувати функцію STDOUT. Як man typeговориться,

Утиліта типу повинна вказувати, як інтерпретуватиметься кожен аргумент, якщо він використовується як ім'я команди.

2
man type? Shell buildins зазвичай не має жодної сторінки в моїй системі.
маніпуляція

Я оновив свою відповідь за посиланням. Я використовую систему Arch Linux.
Jasonwryan

1
Дякую. Здається, що пакунок із сторінками містить багато іншого на Arch.
манантська робота

Немає проблем: оскільки це одна із сторінок POSIX, я думав, що вона буде широко розповсюджена ...
Jasonwryan

4
help typeпоказує специфічну для Баша інформацію.
l0b0

0

для використання вбудованих команд:

help [-s|-d] COMMAND1 COMMAND2 ....

наприклад:

help help alias

Для отримання інформації про всі вони введіть, наприклад:

help -s '' 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.