Первая проблема
Псевдонимы не работают с такими параметрами, как $1
. Единственный способ для псевдонимов использовать аргументы - поместить их в конец. Но даже если $1
будет работать для псевдонимов, ваше определение не будет работать, потому что "$1"
раскрывается во время определения.
Вы можете напечатать значение "$1"
с помощью echo "$1"
. Для меня это пусто. Так что псевдоним ...
alias ropen="git diff --name-only $1 | xargs pstorm"
... будет эквивалентно ...
alias ropen="git diff --name-only | xargs pstorm"
Чтобы использовать $1
по назначению, напишите функцию:
ropen() { git diff --name-only "$1" | xargs pstorm; }
Возможная вторая проблема
xargs
будет искажать аргументы, если напечатанные пути содержат пробелы.
Предположим, что git diff --names-only
напечатает пути a b/c
и x/y z
, тогда xargs
создаст команду pstorm "a" "b/c" "x/y" "z"
. Ни один из этих файлов не существует.
Чтобы разрешить пробелы, используйте xargs -d '\n' pstorm
, это создаст правильную команду pstorm "a b/c" "x/y z"
.