Demystifying the shell script for loop

1. The string interception length is less than a certain value and output

[root@localhost scripts]# vim 揭秘for循环.sh
#!/bin/bash
for i in `cat 1.txt`
do
   l=${i:4}
   if [ ${#l} -lt 3 ];then
   echo "$l"
   fi
done

[root@localhost scripts]# vim 1.txt 
123456
123456
123456
123456


[root@localhost scripts]# ./揭秘for循环.sh
56
56
56
56

2. Multiple algorithms

[root@localhost scripts]# vim 揭秘for循环.sh
for((i=1;i<=10;i++));
do
   echo $(expr $i \* 3 + 1);
done

for i in $(seq 1 10)
do
   echo $(expr $i \* 3 + 1);
done

for i in {1..10}
do
  echo $(expr $i \* 3 + 1);
done

[root@localhost scripts]# ./揭秘for循环.sh
4
7
10
13
16
19
22
25
28
31

3. The for loop prints the nine-nine multiplication table

[root@localhost scripts]# vim 揭秘for循环.sh
for i in `seq 1 9`
do
  for j in `seq 1 $i`
  do  
     echo -ne "$j*$i=$[$j*$i]\t"
  done
  echo
done

for((i=1;i<=9;i++));
do
  for((j=1;j<=i;j++));
  do
    echo -en "$j*$i=$[$j*$i]\t"  #-t是转义字符所以需要-e  -n表示取消换行
  done
  echo
done

[root@localhost scripts]# ./揭秘for循环.sh
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

 

Guess you like

Origin blog.csdn.net/yeyslspi59/article/details/108116395