首页 > 代码库 > 代码块重定向
代码块重定向
象while, until, 和for循环代码块, 甚至if/then测试结构的代码块, 都可以对stdin进行重定向. 即使函数也可以使用这种重定向方式(请参考例子 23-11). 要想做到这些, 都要依靠代码块结尾的<操作符.
while循环的重定向while [ "$name" != Smith ] # 为什么变量$name要用引号?doread name # 从$Filename文件中读取输入, 而不是在stdin中读取输入. echo $namelet "count += 1"done <"$Filename" # 重定向stdin到文件$Filename.重定向while循环的另一种形式exec 3<&0 # 将stdin保存到文件描述符3. exec 0<"$Filename" # 重定向标准输入. count=0while [ "$name" != Smith ]doread name # 从stdin(现在已经是$Filename了)中读取. echo $namelet "count += 1"done # 从文件$Filename中循环读取重定向for循环for name in `seq $line_count` # "seq"打印出数字序列. # while [ "$name" != Smith ] -- 比"while"循环更复杂--doread name # 从$Filename中, 而非从stdin中读取. echo $nameif [ "$name" = Smith ] # 因为用for循环, 所以需要这个多余测试. thenbreak fi done <"$Filename"重定向for循环(stdin和stdout都进行重定向)for name in `seq $line_count` do read name echo "$name" if [ "$name" = "$FinalName" ] then break fi done < "$Filename" > "$Savefile" # 重定向stdin到文件$Filename, # 并且将它保存到备份文件中.
代码块重定向
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。