Що це за команди підкреслення?


10

Коли я tab tab _в терміналі, Баш пропонує 206 можливостей. Я спробував запустити одну з них, _git_rmале нічого не відбулося, що вони?

Ось скріншот:

введіть тут опис зображення


11
type _git_rmнапевно, вам скажуть, що це функція. grep -R '_git_rm' /etc/bash_completion.d/мабуть, знайде. Ці функції зазвичай є тими, які надають різні списки bashзавершення для завершення.
манатура

@manatwork, будь ласка, опублікуйте це як відповідь.
derobert

@derobert, я мав намір лише швидко натякнути, щоб власник питання отримав щось перед тим, як відповідь експерта була розміщена ~ 7 годин пізніше.
манатура

@manatwork Відповіді вистачає на мене ... Я можу самостійно досліджувати більше: D Якщо ви не заперечуєте, я прийму прихильник Жилла, хоча, думаю, я повинен прийняти ваше ..
намалюйте

@draw, відповідь Гілла, ймовірно, ґрунтується на дослідженнях та досвіді, тоді як моя заснована на випадкових спостереженнях, зроблених під час сканування каталогу. Прийміть його, будь ласка.
манатура

Відповіді:


12

Ці функції, назва яких починається з підкреслення, є частиною програмованого механізму завершення. Баш дотримується тут угоди zsh, де функція, яка генерує завершення для somecommand, називається _somecommand, і якщо ця функція вимагає допоміжних функцій, вони називаються _somecommand_stuff.

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

Це випливає з досить розповсюдженої практики в різних мовах програмування використовувати провідне підкреслення, щоб вказати, що функція або змінна певним чином є внутрішньою для бібліотеки і не призначена для кінцевого користувача (або кінцевого програміста).

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