Как встроить, разворачивают подстановочный знак в ударе?

Нет никакой реальной разницы в поведении. Обе команды ничего не делают и выходят с успешным состоянием. : подчеркивает выполнение ничего; true подчеркивает успешное состояние.

strace true работы, потому что true и встроенная оболочка и внешняя команда (/bin/true); : только встроенная оболочка (существует нет /bin/: - хотя мог быть и вероятно был в очень старых системах Unix). В ударе попробовать

type -a :
type -a true

Причины, что оба существуют, являются историческими. Если я вспоминаю правильно, некоторые очень ранние оболочки не имели синтаксиса комментария, таким образом, пустое : команда использовалась вместо этого.

Существует некоторое внутреннее различие в dash. Просмотр источника, доступного в git://git.kernel.org/pub/scm/utils/dash/dash.git, показывает некоторые различные пути выполнения кода в eval.c, но я не смог произвести любое явно другое поведение кроме слова special в выводе type :.

10
05.06.2013, 22:24
3 ответа

Если бы это не, необходимо было бы связать glob-expand-word к сочетанию клавиш. Обычно путем добавления чего-то как:

"\C-x*": glob-expand-word

кому: .inputrc.

Для проверки текущего статуса выпускают что-то как:

bind -P | grep glob-expand-word

Где результат мог бы быть:

glob-expand-word can be found on "\C-x*".

Который означал бы:

Ctrl-x*

Это также наиболее вероятная работа:

Ctrl-xCtrl -*


Взгляните на bind -P и руководство (руководства) для других тонкостей.

7
27.01.2020, 20:02

Кажется поиском завершения списка. В странице справочника для bash:

 COMP_TYPE
     Set to an integer value corresponding to the type of completion
     attempted  that caused a completion function to be called: TAB,
     for normal completion, ?, for listing completions after succes‐
     sive  tabs, !, for listing alternatives on partial word comple‐
     tion, @, to list completions if the word is not unmodified,  or
     %,  for  menu  completion.   This variable is available only in
     shell functions and external commands invoked by  the  program‐
     mable completion facilities

Таким образом, это зависит от функции завершения для somecommand, как это завершается.

3
27.01.2020, 20:02

Если вы используете SET -O VI в Bash, затем CTRL -X * не работает.

В SET -O VI режим необходимо использовать ESC * вместо.

2
27.01.2020, 20:02

Теги

Похожие вопросы