Существует опция оболочки , которая указывает Bash проверить, является ли аргумент cd
переменной, содержащей путь:
shopt -s cdable_vars
y='/dir 2'
cd y
, где cd y
эквивалентноcd "$y"
.
Из руководства:
cdable_vars
Если это установлено, предполагается, что аргумент встроенной команды cd
не является каталогомбыть именем переменной, значением которой является каталог для изменения.
Последние версии bash-complete проверяют, установлена ли опция оболочки, и предлагаютполные имена переменных для cd
, но для того, чтобы это работало, перед загрузкой завершения должна быть установлена опция оболочки.
По умолчанию для cd
установлено значение
complete -F _cd -o nospace cd pushd
Чтобы добавить к этому завершение переменной, оно должно быть изменено на
complete -v -F _cd -o nospace cd pushd