Псевдоним Zsh всегда устанавливает $PWD на домашний адрес

Я хочу использовать псевдоним для команды, которая создает новый сеанс tmux в папке, в которой я сейчас нахожусь, и устанавливает имя папки (через дефис) в качестве имени сеанса. Если сессия уже существует, tmux присоединяется к ней:

alias tses="tmux new -As $(basename $PWD | tr . -)"

Когда я запускаю команду в своей оболочке так: tmux new -As $(basename $PWD | tr . -) она работает так, как ожидалось. Но когда я запускаю псевдоним tses, он всегда устанавливает имя моей домашней папки в качестве имени сеанса.

Почему это так и как я могу исправить это, чтобы оно работало должным образом?


person vkjb38sjhbv98h4jgvx98hah3fef    schedule 24.11.2016    source источник
comment
99% проблем с псевдонимами можно решить с помощью функции.   -  person Barmar    schedule 24.11.2016


Ответы (1)


Таким образом, очевидно, двойные кавычки заставляют zsh оценивать команду (и, следовательно, $PWD) при загрузке .zshrc. Заключив его в одинарные кавычки:

alias tses='tmux new -As $(basename $PWD | tr . -)'

решил это. См. также: Получить `pwd` в псевдониме?.

person vkjb38sjhbv98h4jgvx98hah3fef    schedule 24.11.2016