Закладка автозаполнения в bash с использованием php

Я пишу простой сценарий для автозаполнения, когда я нажимаю TAB.

Скрипт php содержит простое «эхо».

В этом случае автозаполнение работает, но к вкладке добавляется вкладка, что делает ее бесполезной

Код из сценария

scriptPath='/home/hassen/workspace/scripts/bin/test.php' _dda() { local cur COMPREPLY=() unset COMP_WORDS[0] #remove "j" from the array cur=${COMP_WORDS[*]} IFS=$'\n\n' read -d '' -a COMPREPLY < <($scriptPath --completion "$cur") return 0 } complete -F _dda dda alias dda=$scriptPath 

Код из php-скрипта

 <?php echo "hello"; ?> 

Вот раздражающая часть: если я печатаю эхо в Python или Ruby, он работает как шарм – то есть каждый раз, когда я нажимаю TAB, он вызывает скрипты и выводит привет.

Это ошибка с PHP или моим кодом? Они, похоже, не согласны с http://bugs.php.net/bug.php?id=52755

Solutions Collecting From Web of "Закладка автозаполнения в bash с использованием php"

Он работает по желанию здесь, вы уверены, что сам файл PHP не содержит вкладку, возможно, после???

Версии: PHP 5.3.2, версия GNU bash 4.1.5

Команда CLIFramework предоставляет команду, позволяющую сгенерировать скрипт завершения bash с помощью определений вашей команды, поэтому вам не нужно писать скрипт завершения руками:

https://github.com/c9s/CLIFramework

Сценарий:

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

ps он также работает для zsh

В PHP есть известная проблема, которая документирована здесь, что мешает этому работать. https://bugs.php.net/bug.php?id=53040

Используйте / usr / bin / php-cgi вместо / usr / bin / php для запуска скрипта, и он должен работать.

У меня была одна и та же проблема, а не непосредственно с пользовательским завершением bash, но через завершение make-файла Makefile.

Обходное решение проблемы автозаполнения Makefile bash с заданными PHP-целями