当前位置: 首页 > OpenSource, shell > 正文

shell 的变量作用域

shell变量的作用域
while read line
  do
    str[$i]=$line1
    echo $i
    echo ${str[i]}
    let i=i+1
  done  < data
 
  len=${#str[@]}
  echo $len
 
  $len长度为实际data文件的行数
  str[]变量的作用域一直有效
  ===================
  cat data|while read line
  do
    str[$i]=$line1
    echo $i
    echo ${str[i]}
    let i=i+1
  done
 
  len=${#str[@]}
  echo $len
 
  $len长度为0
 
  说明str[]变量的作用域到done结束即失效。
 
  原因是局部变量是普通的变量,仅在创建它的Shell中有效。
   cat data|while read line  使用了管道符 “|”
  表明父shell中的局部变量不会传递到子shell中

本文固定链接: https://www.2hei.net/2008/07/08/shell_variable/ | 2hei.net

该日志由 u2 于2008年07月08日发表在 OpenSource, shell 分类下,
原创文章转载请注明: shell 的变量作用域 | 2hei.net
关键字:

报歉!评论已关闭.