В 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, поэтому я потратил некоторое время на просмотр, чтобы узнать, что происходит. Интересно, могу ли я "понизить"....
Ответ 6
Проверьте ответ для https://superuser.com/info/434139/urxvt-tab-expand-environment-variables Дмитрия Александрова:
Это по поводу опции direxpand. $ shopt -s direxpand
и $FOO_PATH/
будут расширены TAB.