завершення вкладки bash не працює на скриптах оболонки


0

На моїй системній вкладці Fedora 19 не працює для скриптів bash, коли у мене є shна початку командного рядка, якщо ім'я файлу сценарію не закінчується символом a .sh.

Тобто, якщо я набираю:

$ sh file<tab>

І поточний каталог містить:

filename

... заповнення вкладки не працює.

Але якщо поточний каталог містить:

filename.sh

Завершення робіт.

Завершення працює на все інше, тому я підозрюю, що є спеціальний доповнювач для команд, які починаються з того, shі він шукає файли, які закінчуються .sh.

Чи є простий спосіб це виправити? Я хочу виправити це для свого користувача, а не для всіх користувачів, тому що я не хочу змінювати операційну систему.


1
Як зазначав @AlexanderPoteriachin, якщо ви введете filenameсебе і файл не буде іменований filenameтам більше. Ви маєте на увазі, що ви вводите, наприклад, лише, filenі [TAB]він не працює?
mpy

Відповіді:


8

Найбільш основні команди для налаштування завершень у bash:

  • Щоб завершити .shфайли лише після (G означає глобус ):

    complete -G '*.sh' sh

    Можливо, це десь у вашій (системній) конфігурації. (Ви можете перевірити, з complete -prяким друком усі визначення)

  • Щоб заповнити будь-яке ім'я файлу після shвидачі

    complete -A file sh

    -Aвживає набагато більше можливих дій (тут: файл ), будь ласка, ознайомтесь з описом completeвбудованого man bashbuiltinsдля набагато більше варіантів.

Для постійного виправлення такої поведінки, останню команду також додайте до своєї ~/.bashrc.


Як увімкнути завершення файлів поточного каталогу після того, ./як не використовується shкоманда?
Вікі Дев

@VickyDev: Хоча я не повністю розумію, у чому полягає ваше питання, це здається, що краще відповідатиме новим питанням.
mpy

0

Ні, не повинно бути нічого на замовлення. Нічого подібного не бачив у жодній версії Linux. Завершення вкладки працює як очікувалося.

До речі, в чому сенс

$ sh filename<tab>

у будь-якому випадку, якщо у вашому каталозі у вас є "ім'я файлу"?

Можливо, ви трохи заплуталися, наче у вас є дві схожі назви файлів у каталозі, завершення триває лише до того часу, поки символи не будуть однаковими, а потім з’являться всі доступні параметри.

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