zoukankan      html  css  js  c++  java
  • Linux Shell编程(26)——代码块重定向

    像 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
    2
    3" | while read l
         do abc="$l"
            echo $abc
         done
    echo $abc


  • 相关阅读:
    验证SMTP工作过程
    FileZilla FTP服务器的安装和配置
    最后一块石头的重量
    不用加号的加法
    同构字符串
    最长公共子序列
    Telnet 验证HTTP工作过程
    矩阵的最小路径和
    子数组的最大累加和问题
    海思开发板——YOLOv3模型移植(4)
  • 原文地址:https://www.cnblogs.com/new0801/p/6176854.html
Copyright © 2011-2022 走看看