1. bash脚本里定义后续命令执行日志输出路径


  2. #!/bin/bash
    logDir=`date +%F`
    exec &>/tmp/logDir.log      
    //此次定义后续命令的执行输出日志路径
    df -h
    top
  3. for循环


      循环允许你重复一段代码固定次数,在循环代码执行期间,一个称为循环变量的特殊变量被赋予了不同的值;

    for循环很适合处理命令行上的参数以及文件集,for结构的语法如下:

    for name [in list]

    do

    statements

    done

    list为名称列表,如果in list被省略,列表默认为"$@",即命令行参数的引用列表。


3. 练习

  例如:

  • 获取执行脚本附带的参数并输出

    for.sh:

    #!/bin/bash
    for fileDir in "$@"
    do
      echo  "$fileDir"
    done

执行

#bash for.sh /var /opt /tmp
/var
/opt          
/tmp


  • 输出1-n,n为执行脚本带入的参数

for2.sh:

#!/bin/bash
for i in `seq $1`
do
 echo "$i"
done

执行:

#bash for2.sh  3
           
1
           
2
           
3


  • 计算从1加到n为多少,n为你执行该脚本时带入的参数?

 vi for3.sh

#!/bin/bashfor 
for i in `seq $1`
do    
    let  sum+=$i
done
echo "sum=$sum"

执行:#bash for3.sh 100
sum=5050
  • 5秒倒计时

daojishi.sh
#!/bin/bash
n=5
for i in `seq 5`
do 
echo "倒计时:$n"    
let  n--    
sleep 1
done 
执行:#bash daojishi.sh 
        倒计时:5
        倒计时:4
        倒计时:3
        倒计时:2
        倒计时:1
  • 阶乘算法,10的阶乘结果?

    [craft@vp143 test]$ vi jiecheng.sh
    #!/bin/bash
    n=10
    tmp=1
    for i in `seq $n`
    do
       let tmp=`expr $i \* $tmp`
       echo "$tmp"
    done

    执行:[craft@vp143 test]$ bash -i jiecheng.sh
    1
    2
    6
    24
    120
    720
    5040
    40320
    362880

    3628800