Як я налагоджую завершення bash?


14

Я створив деякі функції завершення bash, які, як видається, працюють ізольовано, але дають мені несподівані результати, коли я намагаюся виконати вкладку з ними.

Чи можливо підключити bashdb, потім спробувати вкласти щось, а потім перейти до налагодження та визначити, що йде не так?


2
Просто для додання моїх копійок: ви повинні використовувати set -xв bash для налагодження сценаріїв. Використовуйте set +xдля відключення.

Відповіді:


6

set -x

Якщо ви знаходитесь set -xабо в інтерактивному сеансі, або в самому скрипті автозаповнення, (майже?) Кожна команда та її результати будуть роздруковані. Сюди входить робота, виконана всередині сценарію автозаповнення.

Потім це можна знову вгамувати set +x.

Розгорнувши кожну просту команду, для команди, команди case, вибору команди або арифметики для команди, виведіть розширене значення PS4, а потім команду та її розширені аргументи або пов'язаний список слів.

керівництва Bash # Набір вбудованих


2

Просто вхід / вихід з функцій завершення bash; оскільки вони, швидше за все, не є ракетними науками, зробити це слід досить просто. Можливо, можна підключити bashdb, але це здається непотрібним ...


Підключення bashdb було б набагато простішим і, я вважаю, швидшим, ніж додавання заяв журналу до сценаріїв. Однак я не знаю, чи це можливо, і відсутність відповідей підказує, що це не так. Мені вдалося вирішити свою проблему, ввівши стан у файл, як ви пропонуєте, але виведення інформації журналу в термінал не корисно при роботі з завершеннями.
Ден Мідвуд

3
@DanMidwood: Використовуйте два термінали (наприклад, екран + розділення). В одному запустіть завершення, в другому tail -f- журнал.
choroba

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