Помогите написать функцию bash как однострочный псевдоним

Как написать это как псевдоним?

p() { DIR=~/projects/$@ pushd "$DIR" } 

Это до тех пор, пока я не получил, но это означает, что stdin для pushd вместо xargs:

 alias p="xargs printf ~/projects/%s | pushd" 

Вероятно, это лучше, чем функция, но я чувствую, что узнаю что-то, зная, как записать ее на одной линии и получить правильную трубку.

Благодаря!

One Solution collect form web for “Помогите написать функцию bash как однострочный псевдоним”

Как комментирует @AndreasWiese, вы не можете сделать это с помощью псевдонима. Псевдонимы заключаются в аргументах, разделенных пробелами, поэтому вы не можете присоединиться к ним (простым способом) к команде aliased.

Комментарий к вашей функции: Почему вы используете $@ ? Вместо этого вы должны использовать $1 . Если вы вызываете свою функцию с несколькими аргументами ( pabc ), вы, вероятно, получите ошибку ( b: command not found ) неизвестный каталог.

  • Zsh - псевдоним с параметром
  • Одинарные или двойные кавычки при определении псевдонима?
  • Могу ли я сделать псевдоним для псевдонима в bash?
  • Получить исполняемый файл для любой команды
  • Исключение кавычек в псевдониме zsh
  • Создание псевдонима для сценария bash
  • Пытаться выдать длинную команду дает мне лишь часть ее
  • Как установить псевдоним для определенного файла или каталога?
  • bash добавление имени файла в команду alias
  • Существуют ли глобальные псевдонимы в bash
  • Как предотвратить преждевременное выполнение $ () при создании псевдонима
  • Linux и Unix - лучшая ОС в мире.