Intereting Posts
Исключение нескольких шаблонов с помощью одной команды grep Сценарий Awk работает только в том случае, если я редактирую текстовый файл вручную Использование sed для преобразования строк в строки понимание LAMP: linux apache mysql и php Какое устройство использует драйвер под Linux? хотите ssh на сервер за NAT с хоста также за NAT Задержка pam_unix каждые 5 попыток Как отправить вывод команды unix с одного сервера на другой? Как определить, откуда появилась переменная среды Как разрешить www-data создавать папку, не предоставляя доступ для чтения к родительской папке GRUB-загрузчик не работает с Kali Linux Dual Boot Я получаю «Имя или услугу неизвестно» в Linux Kali при подключении с адаптером Virtualbox Bridged Adapter Добавить столбец на основе поискового запроса где на файловой системе идут пользовательские системные скрипты? Есть ли альтернатива использованию rbash для ограничения пользователя в моей системе?

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

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

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

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

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

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

Благодаря!

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

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