分号分隔的别名似乎打破了参数引用(tcsh)

时间:2018-03-31 01:11:15

标签: tcsh

我按如下方式创建了两个别名:

alias echo1 'echo \!#:1';  - Echo first argument

alias echo2 'echo \!#:2';  - Echo second argument 

然后echo1 foo fee - > foo

echo2 foo fee - > fee

然而,

echo1 fee; echo2 fuu fii; -> fee (only)

而,

echo2 fuu fii; echo1 fee; -> fii, fii

当别名放在由分号分隔的单行上时,第二个命令的参数来自第一个命令的输出,而不是使用第二组参数。这对我来说似乎是违反直觉的。我希望用分号分隔的两个命令产生相同的结果,就好像它们是在不同的行上发出的那样,但显然并非如此。好像有一个暗示的管道。有谁知道为什么?

使用两个逗号分隔的命令定义单个别名时会发生同样的行为。我无法弄清楚如何使每个命令索引后面的参数。

0 个答案:

没有答案