热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过ksh中的一系列整数进行迭代?-Iteratingthrougharangeofintsinksh?

HowcanIiteratethroughasimplerangeofintsusingaforloopinksh?如何在ksh中使用for循环遍历一个简单的整数范围?

How can I iterate through a simple range of ints using a for loop in ksh?

如何在ksh中使用for循环遍历一个简单的整数范围?

For example, my script currently does this...

例如,我的脚本目前正在执行此操作...

for i in 1 2 3 4 5 6 7
do
   #stuff
done

...but I'd like to extend the range way above 7. Is there a better syntax?

...但是我希望将范围扩展到7以上。有更好的语法吗?

7 个解决方案

#1


36  

Curly brackets?

大括号?

for i in {1..7}
do
   #stuff
done

#2


15  

While loop?

循环?

while [[ $i -lt 1000 ]] ; do
    # stuff
   (( i += 1 ))
done

#3


10  

ksh93, Bash and zsh all understand C-like for loop syntax:

ksh93,Bash和zsh都理解C-like for循环语法:

for ((i=1; i<=9; i++))
do
    echo $i
done

Unfortunately, while ksh and zsh understand the curly brace range syntax with constants and variables, Bash only handles constants (including Bash 4).

不幸的是,虽然ksh和zsh理解带有常量和变量的大括号范围语法,但Bash只处理常量(包括Bash 4)。

#4


8  

on OpenBSD, use jot:

在OpenBSD上,使用jot:

for i in `jot 10`; do echo $i ; done;

#5


5  

The following will work on AIX / Linux / Solaris ksh.

以下内容适用于AIX / Linux / Solaris ksh。

#!/bin/ksh

d=100

while (( $d <200 ))
do
   echo "hdisk$d"
  (( d=$d+1 ))
done

Optionally if you wanted to pad to 5 places, i.e. 00100 .. 00199 you could begin with:

(可选)如果您想要填充到5个位置,即00100 .. 00199,您可以从以下位置开始:

#!/bin/ksh
typeset -Z5 d

-Scott

斯科特

#6


4  

seq - but only available on linux.

seq - 但只能在linux上使用。

for i in `seq 1 10`
do 
    echo $i
done

there are other options for seq. But the other solutions are very nice and more important, portable. Thx

seq还有其他选择。但其他解决方案非常好,更重要,便携。谢谢

#7


1  

Just a few examples I use in AIX because there is no range operator or seq, abusing perl instead.

我在AIX中使用的几个例子,因为没有范围运算符或seq,而是滥用perl。

Here's a for loop, using perl like seq:

这是一个for循环,使用像seq这样的perl:

for X in `perl -e 'print join(" ", 1..10)'` ; do something $X ; done

This is similar, but I prefer while read loops over for. No backticks or issues with spaces.

这是类似的,但我更喜欢读取循环。空格没有反引号或问题。

perl -le 'print "$_ " for 1..10;' | while read X ; do xargs -tn1 ls $X ; done

My fav, do bash-like shell globbing, in this case permutations with perl.

我喜欢,做类似bash的shell globbing,在这种情况下用perl进行排列。

perl -le 'print for glob "e{n,nt,t}{0,1,2,3,4,5}"' | xargs -n1 rmdev -dl

推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
Coco李可儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有