Как опустить символ $ при вводе пути, хранящегося в переменной?

Вы можете использовать цикл for , который устанавливает для переменной i значение 1 , 2 , ... n-1 , и используйте косвенное расширение , чтобы превратить это в $ 1 , $ 2 ], ..., $ n-1 .

for ((i=1; i<$#; i++)); do
    echo "${!i}"
done

4
25.06.2017, 17:11
3 ответа

Вы должны использовать глобальный псевдоним. Кажется, что bash не поддерживает его, но он очень хорошо работает с zsh.

Демонстрация

<code>% alias -g asd="bsd"; echo asd</code> -> <code>bsd</code>

Установка

$ 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 | бить
    
  • Установите плагин подсветки синтаксиса:

    • Загрузите

      git clone git://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/custom/plugins/zsh- подсветка синтаксиса
      
    • И примените:

      sed 's/^plugins=\((.*)\)$/plugins=(\1 zsh-syntax-highlighting)'
      
    • Наконец, перезагрузите параметры конфигурации:

      исходный файл .zshrc.
      

Извините за длинное руководство, но я надеюсь, оно вам понравится.

0
27.01.2020, 20:46

Вы ищете опцию cdable_vars. Чтобы активировать его, запустите shopt -s cdable_vars, если вы используете bash(setopt cdablevarsв случае zsh ). После этого простой cd mydirбудет работать.

Обратите внимание на то, что если вы попытаетесь cd mydirиз каталога, который содержит файл или каталог с таким же именем, оболочка попытается использовать файл или объект каталога в текущем каталоге вместо расширения Переменная.

10
27.01.2020, 20:46

Как насчет просто:

mydir

Просто определите переменную, как вы уже сделали, и создайте функцию:

mydir=/etc/insserv.conf.d/testname
mydir(){ cd "$mydir"; }

Готово.

Альтернативой является использование псевдонима:

alias mydir='cd "$mydir"'
5
27.01.2020, 20:46

Теги

Похожие вопросы