2

我想在 Linux 中的 tcsh 上有效地执行以下操作。

somecommand a;
somecommand b;
somecommand c;

如果我这样做somecommand {a,b,c}了,这somecommand a b c不是我想要的。有没有办法做我想做的事?

4

4 回答 4

1

在 tcsh 中,您应该使用foreach循环,如下所示:

foreach val (a b c)
  somecommand $val
end

更好的是在变量中包含这些值,如下所示:

set values="a b c"

foreach val ($values)
  somecommand $val
end
于 2010-09-03T17:49:46.543 回答
0

@Borealid 的循环是最好的。只是为了踢球,另一种方法是使用 xargs:

echo a b c | xargs -n 1 somecommand
于 2010-09-03T04:18:57.340 回答
0

在 Bash 中,它是for i in a b c; do somecommand $i; done. 我敢打赌它在 tcsh 中是相似的。

于 2010-09-03T03:19:46.717 回答
0

感谢 Boralid 和 John 的回答。我为此在 tcsh 中创建了一个别名。有用!!

alias myglob 'echo \!:2-$ | xargs -n 1 \!:1'
于 2010-09-03T05:06:22.873 回答