У меня две системы, компьютер Ubuntu и планшет Android. Я собрал и настроил bash для Android, чтобы использовать его в adb, так что это та же версия, что и мой Ubuntu bash, и они используют в основном тот же bashrc и конфигурацию, а также те же самые параметры, установленные shopt.
Однако есть небольшая разница: Android bash ведет себя так, как я и ожидал, когда я пытаюсь дополнить что-либо с помощью клавиши Tab, используя переменную, а Ubuntu bash — нет.
#Android
ls $HOME/loc<tab> => ls $HOME/local #As expected
В принципе, переменная учитывается при заполнении. Но потом
#Ubuntu
ls $HOME/loc<tab> => ls \$HOME/loc #Undesired behavior.
Список опций приведен ниже и одинаков в обеих сборках bash.
autocd:checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:progcomp:promptvars:sourcepath
Что может заставить версию Ubuntu избегать $ вместо того, чтобы использовать его для завершения, как в сборке Android? Что я могу сделать, чтобы обе работали одинаково? Любая помощь будет высоко оценена.
решение1
Пакет bash 4.2-0ubuntu3 демонстрирует эту проблему, как показано в следующем баге:
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/778627/
Судя по всему, это проблема самого bash, поэтому сейчас у вас есть выбор: загрузить и скомпилировать исходную копию bash для запуска на своей машине.