Scripting 在tcsh中生成序列号列表

Scripting 在tcsh中生成序列号列表,scripting,shell,csh,tcsh,Scripting,Shell,Csh,Tcsh,我一直在努力寻找一种解决办法,以便在tcsh中广泛地定义序列号列表,即,而不是: i = ( 1 2 3 4 5 6 8 9 10 ) 我想做这样的事情(知道它不起作用) 这在foreach循环中特别有用(我知道我可以使用while,只是尝试寻找替代方法) 环顾四周,我发现: foreach $number (`seq 1 1 9`) ... end 找到了。他们说,它将生成一个数字列表,从1开始,递增1,以9结尾 我试过了,但没用。显然,seq不是命令。它是否存在,或者这显然是错误的 还有

我一直在努力寻找一种解决办法,以便在tcsh中广泛地定义序列号列表,即,而不是:

i = ( 1 2 3 4 5 6 8 9 10 )
我想做这样的事情(知道它不起作用)

这在foreach循环中特别有用(我知道我可以使用while,只是尝试寻找替代方法)

环顾四周,我发现:

foreach $number (`seq 1 1 9`)
...
end
找到了。他们说,它将生成一个数字列表,从1开始,递增1,以9结尾

我试过了,但没用。显然,seq不是命令。它是否存在,或者这显然是错误的


还有其他想法吗?

seq
当然存在,但可能不在您的系统上,因为它不在POSIX标准中。我刚注意到你有两个指挥官。下面的方法有效吗

foreach number ( `seq 1 9` )
    echo $number
end
请注意,
seq
命令周围省略了美元符号和额外的反勾号

如果仍然不起作用,您可以使用
awk
模拟
seq

foreach number ( `awk 'BEGIN { for (i=1; i<=9; i++) print i; exit }'` )
我以前从未听说过jot,但它看起来像是类固醇

  • bash
    与内置支架扩展一起使用:

    for number in {1..9}
    

  • 你需要坚持使用tcsh有什么原因吗?你能改用bash吗?是的,我已经注意到美元的不足,但仍然不起作用。我们正在寻找一些比您显示的awk命令更简单的东西,但将来会考虑它。无论如何谢谢你@托马斯:你在用什么操作系统?我注意到我的Mac电脑安装了GNU版的
    seq
    作为
    gseq
    ,也许你的系统上也有类似的东西。祝你好运@托马斯:我是通过科鲁蒂尔斯的包裹拿到的。但是您应该有
    jot
    作为替代品。
    foreach number ( `jot 9` )
    
    for number in {1..9}