Как опустить символ $ при вводе пути, хранящегося в переменной?
У меня часто используется каталог. Предположим, что это:
/etc/insserv.conf.d/testname
Я установил переменную в моем /root/.bashrc
:
- Завершение первого аргумента cd OLD NEW
- Создавайте shorcuts в терминале для перемещения между папками
- Сценарий Bash не изменит каталог
- Почему значение cd по умолчанию равно ~?
- Можно ли изменить команду для `cd`, чтобы отображать только каталоги и игнорировать файлы?
mydir=/etc/insserv.conf.d/testname
Теперь я могу открыть этот каталог с помощью этой команды
cd $mydir
Но мне действительно не нравится этот символ $
. Есть ли способ обхода? Я имею в виду: я хочу открыть этот каталог только cd mydir
, возможно ли это в Ubuntu 16.04
?
- Что такое «рабочий каталог», когда cron выполняет задание?
- Сохранение истории за рабочий каталог (см. Сеанс оболочки)
- Почему в папку рабочего стола не загружается «sudo bash && cd desktop»?
- Как я могу записать cd в каталог с правами root?
- Создание псевдонима для изменения каталога и наличие этого каталога в текущем рабочем каталоге на вкладках новых терминалов
- Разный каталог входа ssh из дома пользователя
- `cd` вверх по каноническому пути
- где находится `cd`?
3 Solutions collect form web for “Как опустить символ $ при вводе пути, хранящегося в переменной?”
Вы ищете вариант cdable_vars
. Чтобы активировать его, запустите shopt -s cdable_vars
если вы используете bash ( setopt cdablevars
в случае zsh). После этого будет работать простой cd mydir
.
Обратите внимание : если вы попытаетесь cd mydir
из каталога, содержащего файл или каталог с тем же именем, то оболочка попытается использовать объект файла или каталога в текущем каталоге вместо того, чтобы расширять переменную.
Как насчет просто:
mydir
Просто определите переменную, как вы уже сделали, и создайте функцию:
mydir=/etc/insserv.conf.d/testname mydir(){ cd "$mydir"; }
иmydir=/etc/insserv.conf.d/testname mydir(){ cd "$mydir"; }
Готово.
Альтернативой является использование псевдонима:
alias mydir='cd "$mydir"'
Вы должны использовать глобальный псевдоним. Кажется, что bash не поддерживает его, но он отлично работает с zsh.
демонстрация
Монтаж
$ sudo apt install zsh
Чтобы получить то же самое, что и мое, вы должны
-
Установите Oh My Zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
-
Замените свою тему на agnoster:
sed 's/^ZSH_THEME=".*"$/ZSH_THEME="agnoster"/' -i .zshrc
-
И установите шрифты Powerline, чтобы заставить agnoster работать:
curl https://pastebin.com/raw/nD4DTpuF | bash
-
Установите плагин подсветки синтаксиса:
-
Скачать
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/custom/plugins/zsh-syntax-highlighting
-
И примените:
sed 's/^plugins=\((.*)\)$/plugins=(\1 zsh-syntax-highlighting)'
-
Наконец, перезагрузите настройки конфигурации:
source .zshrc
-
Извините за этот длинный учебник, но я надеюсь, вам понравится.