Bash: вывод аргумента после косой черты вставляет пустой символ - PullRequest
1 голос
/ 03 октября 2009

Я пытаюсь построить путь, используя аргумент командной строки в bash. Я добавил следующую строку в мой .bashrc:

alias hi="echo '/path/to/$1'"

Однако, это дает:

~$ hi foo
/path/to/ foo

Есть идеи, откуда появляется пробел после слеша?

Спасибо

Ханнес

Ответы [ 2 ]

5 голосов
/ 03 октября 2009

Короче говоря, псевдонимы не могут принимать аргументы. Вы можете сделать функцию вместо:

 $ function hi() { echo "/path/to/$1"; }
 $ hi foo
 /path/to/foo

Читайте здесь для других вариантов.

1 голос
/ 04 октября 2009

Как указано Лукаш Лалинский , псевдонимы не принимают аргументов, поэтому $1 равно нулю Однако, даже если вы должны были сделать это:

alias hi="echo '/path/to/'"

вы получите пробел. Причина этого в том, что если у вас был такой псевдоним:

alias myls=ls

и сделал:

myls filename

он не будет пытаться запустить:

lsfilename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...