Оболочка псевдонижает несколько аргументов
-
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
Не связан с StackOverflow