首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Bash - for循环中的多个条件

在Bash脚本中,for循环可以用于遍历数组、文件或者指定的范围。在循环中,可以使用多个条件来控制循环的执行。以下是一个示例脚本,展示了如何在for循环中使用多个条件:

代码语言:bash
复制
#!/bin/bash

# 定义一个数组
numbers=("one" "two" "three" "four" "five")

# 使用for循环遍历数组
for ((i=0; i<${#numbers[@]}; i++)); do
  # 使用多个条件来控制循环的执行
  if [ "${numbers[i]}" == "two" ] || [ "${numbers[i]}" == "four" ]; then
    echo "${numbers[i]}"
  fi
done

在这个示例中,我们定义了一个名为numbers的数组,其中包含了五个元素。然后,我们使用for循环遍历数组中的每个元素。在循环中,我们使用了一个if语句来检查当前元素是否等于twofour。如果满足条件,我们就输出该元素。

这个示例展示了如何在for循环中使用多个条件来控制循环的执行。当然,你可以根据需要添加更多的条件或者使用其他类型的循环来实现你的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Shell 脚本进阶,经典用法及其案例

    (2)案例 #求出(1+2+...+n)的总和 sum=0 read -p "Please input a positive integer: " num if [[ $num =~ [^0-9] ]] ;then echo "input error" elif [[ $num -eq 0 ]] ;then echo "input error" else for i in `seq 1 $num` ;do sum=$[$sum+$i] done echo $sum fi unset zhi 分析:sum初始值为0,请输入一个数,先判断输入的是否含有除数字以外的字符,有,就报错;没有判断是否为0,不为0进入for循环,i的范围为1~输入的数,每次的循环为sum=sum+i,循环结束,最后输出sum的值。 #求出(1+2+...+100)的总和 for (( i=1,num=0;i<=100;i++ ));do [ $[i%2] -eq 1 ] && let sum+=i done echo sum=$sum 分析:i=1,num=0;当i<=100,进入循环,若i÷2取余=1,则sum=sum+i,i=i+1。 2、while (1)用法格式 while 循环控制条件 ;do 循环 done 循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true” ,则执行一次循环;直到条件测试状态为“false” 终止循环 (2)特殊用法(遍历文件的每一行): while read line; do控制变量初始化 循环体 done < /PATH/FROM/SOMEFILE 或cat /PATH/FROM/SOMEFILE | while read line; do 循环体 done 依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将行赋值给变量line (3)案例: #100以内所有正奇数之和 sum=0 i=1 while [ $i -le 100 ] ;do if [ $[$i%2] -ne 0 ];then let sum+=i let i++ else let i++ fi done echo "sum is $sum" 分析:sum初始值为0,i的初始值为1;请输入一个数,先判断输入的是否含有除数字以外的字符,有,就报错;没有当i<100时,进入循环,判断 i÷2取余 是否不为0,不为0时为奇数,sum=sum+i,i+1,为0,i+1;循环结束,最后输出sum的值。 3、until 循环 (1)用法 unitl 循环条件 ;do 循环 done 进入条件:循环条件为true ;退出条件:循环条件为false;刚好和while相反,所以不常用,用while就行。 (2)案例 #监控xiaoming用户,登录就杀死 until pgrep -u xiaoming &> /dev/null ;do sleep 0.5 done pkill -9 -u xiaoming 分析:每隔0.5秒扫描,直到发现xiaoming用户登录,杀死这个进程,退出脚本,用于监控用户登录。 4、select 循环与菜单 (1)用法 select variable in list do 循环体命令 done

    01

    循环语句总结

    循环语句用于的程序主要是重复做过程大致相同的事情,可以将一些复杂的过程简单化。 循环结构: for循环: for(给变量赋初值;限制条件;变量变化规律) 此循环中的限制条件不仅仅只是对自变量的限制,而且可以有多个限制条件。并且限制条件也可以不填写,既此循环为死循环。当然可以在循环的语句中加入一个使循环停止的语句,使循环结束。 while循环: 1. while(条件) 2.do{ } while(条件) while还可以实现多组输入,例“while(cin>>a)”或“while(scanf("%d",&a)==1”,停止输入时只需输入一个不符合a类型的字符即可,可以处理不知道要输入多少组数据的问题。 第一种符合条件才会运行,第二种无论怎么样先运行一遍再进行条件判断。 在循环的语句中还可以加入break,continue,exit(0)。 break是结束break所在的那一个循环。 continue是跳过continue下面的语句,并进入下一次循环,就例如for循环中正在进行i为1的循环,遇到continue则下面的语句不进行直接进入i为2的循环。 exit(0)是直接退出整个程序。 for循环多用于与数字紧密联系的一些循环,例如描绘矩形之类的题,而while处理的就是一些知道终止条件的语句,并且两者都可以进行循环嵌套。 题目用到循环时,首先找规律,否则写出的程序就会十分的冗长,另外利用for循环嵌套还可以对数字进行排序,既第一重循环对该数组中的一个数据进行固定,然后利用二重循环使各数据与固定的数据进行比较,然后进行交换数值,完成排序。 例:#include using namespace std; int main() { int p[101],i=1,t; while(cin>>p[i]) {i++;} for(int x=1;x<i;x++) { for(int j=x+1;j<=i;j++) { if(p[x]>p[j]) { t=p[x]; p[x]=p[j]; p[j]=t; } } } for(int j=2;j<=i;j++) {cout<<p[j]<<" ";} return 0; } 个人感觉在用到循环语句时和数组结合能够更方便的解决问题,再利用循环语句解答问题时最好还是先找题目中的规律,实在找不到再硬做,while循环和for循环的功能大致是一样的,两者几乎可以交换,但是写出程序的难易度不同。个人感觉最重要的就是找规律。

    01
    领券