Оболочка псевдонижает несколько аргументов

StackOverflow https://stackoverflow.com/questions/1735695

  •  20-09-2019
  •  | 
  •  

Вопрос

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

Например

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

Что-то вроде этого..

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

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

Возможно, используя AWK?

Это было полезно?

Решение

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

$ 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}

Другие советы

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

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

Не забывайте пространство между { а также echo.

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

$ cmd hello world
hello
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top