IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Linux Shell编程(26)——代码块重定向

    yincheng01发表于 2014-09-30 08:13:48
    love 0
    像 while, until, 和 for 循环代码块, 甚至 if/then 测试结构的代码块都能做到标准输入的重定向. 即使函数也可以使用这种重定向的格式 。所有的这些依靠代码块结尾的 < 操作符来做到.


    例子:while 循环的重定向

    #!/bin/bash
    # redir2.sh
    
    
    if [ -z "$1" ]
    then
      Filename=names.data       # 如果没有指定文件名,则指定这个默认值.
    else
      Filename=$1
    fi  
    #+ Filename=${1:-names.data}
    #  这句可代替上面的测试 (参数替换).
    
    
    count=0
    
    
    echo
    
    
    while [ "$name" != Smith ]  # 为什么变量 $name 要用引号?
    do
      read name                 # 从$Filename文件中读而非在标准输入中读.
      echo $name
      let "count += 1"
    done <"$Filename"           # 重定向标准输入到文件$Filename. 
    #    ^^^^^^^^^^^^
    
    
    echo; echo "$count names read"; echo
    
    
    exit 0
    
    
    #  注意在老一些的shell脚本编程语言里,
    #  因此, $count 值返回后会是 0, 此值是在循环开始前的值.
    #  Bash 和 ksh 只要可能就避免启用子shell,
    
    
    
    
    abc=hi
    echo -e "1\n2\n3" | while read l
         do abc="$l"
            echo $abc
         done
    echo $abc




沪ICP备19023445号-2号
友情链接