search _filedir() в сценарии bash_completion верхнего уровня и измените строку
compopt -o filenames 2>/dev/null
на
compopt -o filenames -o noquote 2>/dev/null
Для тех, кто (как я) с 12.04, может использовать ~ + вместо $ PWD ...
например:
cd /bin
echo ~+/ls
/bin/ls
Даже с обновленным bash я обнаружил, что $ по-прежнему сбегает.
Удаление пакета bash-completion (1:2.1-3.fc20) или просто не поиск /etc/bashrc из ~/.bashrc, казалось, исправить его.Я подозреваю, что теперь упущу некоторые функции, к которым я обычно привык, но еще не заметил.
Альтернатива (по крайней мере, для Fedora 26), добавьте export BASH_COMPLETION_VERSINFO=0 перед поиском /etc/bashrc. Это делает проблематичный сценарий, который, по его мнению, уже был получен.
Я столкнулся с той же проблемой с Bash в Cygwin. Я исправил свою проблему, установив следующую опцию.
shopt -s cdable_vars
http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html