Shell псевдонимов нескольких аргументов - PullRequest
1 голос
/ 15 ноября 2009

Есть ли хороший способ сделать несколько подстановок для псевдонимов команды?

Например

alias cmd = 'ssh -R $1:$2:$1:$2 $3 | something {$1, $2, $3}'
cmd 127.0.0.1 1234 server

Как то так ..

На самом деле, это не имеет никакого смысла направлять вывод таким образом, но мне хотелось бы увидеть похожий синтаксис.

Было бы хорошо иметь именованные сопоставления, но с индексами все в порядке.

Возможно, с помощью awk?

Ответы [ 2 ]

4 голосов
/ 15 ноября 2009

Как насчет использования функции оболочки вместо:

$ cmd() { echo ssh -R $1:$2:$1:$2 $3 ; echo something {$1, $2, $3} ; }
$ cmd 127.0.0.1 1234 server
ssh -R 127.0.0.1:1234:127.0.0.1:1234 server
something {127.0.0.1, 1234, server}
1 голос
/ 15 ноября 2009

Вы должны определить это с помощью функции. Пример:

cmd () { echo -e "$1\n$2" | grep "$1"; }

Не забудьте пробел между { и echo.

Это может привести к следующему поведению:

$ cmd hello world
hello
...