1

有没有一种好方法可以为命令别名进行多次替换?

例如

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

像这样的东西。。

实际上,像这样管道输出并没有任何意义,但我希望看到类似的语法。

拥有命名映射也很好,但只有索引就可以了。

也许使用awk?

4

2 回答 2

4

改用 shell 函数怎么样?:

$ 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}
于 2009-11-14T21:58:28.083 回答
1

您必须使用函数来定义它。例子:

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

不要忘记 和 之间的{空格echo

这将导致以下行为:

$ cmd hello world
hello
于 2009-11-14T21:58:51.330 回答