首页 > 代码库 > bash 编程 for

bash 编程 for

for 变量 in 列表 ;do

语句1

语句2

done

列表的生成

    1. 逐个给出 如 /etc/inittab /etc/
    2. 使用通配符 如 for file in /var/*
    3. 使用命令 如 for file in `ls /var`
    4. 数字序列 {起始数字..结束数字} 如 {1..100} 或者 `seq 起始步长 步长 结束步长`

使用for循环遍历目录

#!/bin/bash
#version:0.1
#author:ml
#pragram:this scripts is print all files in directory
DIR="/etc"
for i in `ls $DIR`;do
echo $i
done
 
使用for循环,复制/etc/fstab、/etc/inittab文件至/tmp/目录中,
并重命名为原有的名称之后加当前日期,如第一个文件为/tmp/fstab-2013-07-15;
 
#!/bin/bash
#version:0.1
#author:ml
#pragram:cp file to /tmp
for i in fstab inittab ;do
cp /etc/$i /tmp/$i-`date +%F`
done
 
练习:写一个脚本,计算100以内所有整数的和;

#!/bin/bash
#
Sum=0
for I in {1..100}; do
  Sum=$[$Sum+$I]
done
echo "The sum is: $Sum."

练习:写一个脚本,计算100以内,所有偶数的和,以及所有奇数的和;

#!/bin/bash
EvenSum=0
OddSum=0
for I in `seq 1    2 100`;    do
  OddSum=$[$OddSum+$I]
done
for I in `seq 2    2 100`;    do
  EvenSum=$[$EvenSum+$I]
done
echo "Even Sum:    $EvenSum; Odd Sum: $OddSum."

练习:写一个脚本,计算当前系统上所有用户的ID号之和;


#!/bin/bash
IDSum=0
for I in `cut -d: -f3 /etc/passwd`; do
  IDSum=$[$IDSum+$I]
done
echo "ID sum is: $IDSum." 
for ((初始条件;终止条件;异动项))
do 
       语句
done
#!/bin/bash
#version:0.1
#author:ml
#pragram:this pragram is and the sum from 1 to 100
declare -i i
sum=0
for ((i=1;i<=100;i=i+1))
do
sum=$[$sum+$i]
done
echo "the result is $sum"
 
for 无穷循环
for ((;1;))
do
      语句
done
 
for ((;1;))
do
echo  hello
done