shell 中的for循环

第一类:数字性循环

#!/bin/bash
for((i=1;i<=10;i++));
do 
    echo $(expr $i \* 3 + 1);
done
#!/bin/bash
for i in $(seq 1 10)
do 
    echo $(expr $i \* 3 + 1);
done
#!/bin/bash

for i in {1..10}
do
    echo $(expr $i \* 3 + 1);
done
#!/bin/bash
awk 'BEGIN{for(i=1; i<=10; i++) print i}'

注意为双括号,分号隔开

 for ((;;);do

  echo"无限循环";

done

 用法:seq [选项]... 尾数(默认从1开始)
 或:seq [选项]... 首数 尾数
 或:seq [选项]... 首数 增量 尾数

选项:

     -f, 指定格式
     -s, 指定分隔符(默认为: \n)
     -w, 等宽输出 

-f 指定输出格式
#seq -f “%3g” 13  数字位数为三位,不足补空格
  1
  2
  3
#seq -f “%03g” 1 3  数字位数为三位,不足补零
001
002
003
#seq -f "str%03g" 1 3
str001
str002
str003 

-w 指定输出数字同宽,与-f部分作用相似,不可与-f选项同时使用
#seq -w  9 11
09
10
11

-s 指定分隔符,默认分隔符是/n(回车)
#seq -s  " " 1 5 空格作为分隔符
1 2 3 4 5 
#seq -s "`echo -e "\t"`" 1 3 \t作为分隔符
1  2    3
View Code

 

 echo {1..10}  打印1-10这些数字

{1..10} 不能带上引号,单双引号,反引号都不行

 

第二类:字符性循环

#!/bin/bash
for i in `ls`;
do 
    echo $i is file_name\! ;
done
#!/bin/bash
for i in $* ;
do
    echo $i is input chart\! ;
done
#!/bin/bash
for i in f1 f2 f3 ;
do
    echo $i is appoint ;
done
#!/bin/bash
list="rootfs usr data data2"

for i in $list;
do
    echo $i is appoint ;
done

第三类:路径查找

#!/bin/bash
for i in /proc/*;
do
  echo $i is file path;
done
#!/bin/bash
for i in $(ls *.sh)
do
    echo $i is file path;
done

来自:https://blog.csdn.net/weixin_41477980/article/details/85028408

posted @ 2021-04-27 11:01  声声慢43  阅读(120)  评论(0编辑  收藏  举报