В bash переменные среды не правильно расширяются

В bash переменные окружения будут правильно размещены в закладке, если они будут помещены после команды эха, например:

echo $HOME

Но после cd или cat bash помещает a\перед знаком $, например:

cd \$HOME

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

cp somefile $HOM

Какая загадочная опция у меня есть в моем файле .bashrc или .inputrc, который вызывает у меня такой труд?

Ответы

Ответ 1

Попробуйте complete -r cd удалить специальную программную функцию завершения, которую устанавливает множество дистрибутивов Linux для команды cd. Функция добавляет поиск списка каталогов, указанных в переменной CDPATH, для завершения вкладок для cd, но за счет нарушения по умолчанию поведения по умолчанию.

Подробнее см. http://www.gnu.org/software/bash/manual/bashref.html#Programmable-Completion для более подробной информации.

Ответ 2

То, что вы описываете, - это "функция" представленная в bash 4.2. Таким образом, у вас нет таинственного варианта, вызывающего у вас страдание, а просто "предназначенное" поведение.

Я нахожу это очень раздражающим, так как я предпочитаю его так, как раньше, и еще не нашел вариантов конфигурации, чтобы вернуть прежнее поведение. Игра с параметрами complete, как это было предложено другими ответами, не доставила меня никуда.

Ответ 3

Во втором случае вы можете нажать ESC перед вкладкой, чтобы решить проблему.

Я не знаю решения вашей проблемы, но вы можете посмотреть /etc/bash_completion или файлы под /etc/bash_completion.d, чтобы определить, что команды используют автозаполнение и как.

help complete

Также может быть полезно.

Ответ 4

Справочное руководство Bash содержит больше информации, чем вы можете захотеть в случае ошибок расширения.

Раздел 8.7 выглядит так, что это будет место для начала. Он дает информацию о "полной" функции, среди прочего.

Ответ 5

Я отвечаю на 4-летний вопрос! Fantastic!

Это ошибка/функция bash, которая была непреднамеренно введена в v4.2 и оставалась незамеченной в течение длительного периода времени. Это было указано geirha в этом протекте. Подтверждено как непреднамеренная функция здесь

Я столкнулся с этой проблемой при запуске Ubuntu дома. На работе у меня есть bash -3.00, поэтому я потратил некоторое время на просмотр, чтобы узнать, что происходит. Интересно, могу ли я "понизить"....