当前位置 博文首页 > bash 循环中变量作用范围的问题分析

    bash 循环中变量作用范围的问题分析

    作者:admin 时间:2021-02-08 09:27

    先来看一段错误的代码。

    复制代码 代码如下:

    #!/bin/bash
    for x in `ls */.*/.*`
    cat $x|do echo $x
    while read line
      do
        c=`echo $line|awk -F'(' '{print $1}'`
        #echo $c
        i=$((i+$c))
      done
      echo
    done
    echo $i

    以上代码有什么问题呢?
    cat之后的管道会使i的值没有被加1。

    正确的方法:

    复制代码 代码如下:

    #!/bin/bash
    for x in `ls */.*/.*`
    do echo $x
    while read line
      do
        c=`echo $line|awk -F'(' '{print $1}'`
        #echo $c
        i=$((i+$c))
      done<$x
      echo
    done
    echo $i

    js
下一篇:没有了