scripting - 在 tcsh 中生成序号列表

标签 scripting shell csh tcsh

我一直在尝试寻找一种解决方法来在 tcsh 中广泛定义序列号列表,即。而不是做:

i = ( 1 2 3 4 5 6 8 9 10 )

我想做这样的事情(知道它行不通)

i = ( 1..10 )

这在 foreach 循环中特别有用(我知道我可以使用 while,只是想寻找一个替代方案)。

环顾四周,我发现了这个:

foreach $number (`seq 1 1 9`)
...
end

发现here .他们说它会生成一个以 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 }'` )

更新

另外两个选择:

  1. 如果你的机器没有 seq 它可能有 jot (BSD/OSX):

    foreach number ( `jot 9` )
    

    我以前从未听说过 jot,但它看起来像是打了兴奋剂的 seq

  2. 使用带有内置大括号扩展的 bash:

    for number in {1..9}
    

关于scripting - 在 tcsh 中生成序号列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3921604/

相关文章:

linux - csh (tcsh) 将带有 stderr 重定向的管道命令的输出分配给脚本中的变量时,输出重定向不明确

javascript - 在 JavaScript 文件中设置变量值

xcode - Xcode 构建阶段运行脚本支持哪些类型的语言?

ruby-on-rails - 允许在 Ruby/Rails 应用程序中使用用户定义的脚本

java - shell脚本执行中字符串连接错误

node.js - 使用 npm 运行 bash 脚本

shell - 如何确定我的 csh 版本?

c - 从 C 内部运行 csh

sql-server - SQL : Can't Create SP Inside If Block

linux - curl 帖子问题 : input password became empty