while读取文件 Shell中while循环的陷阱, 变量实效, 无法赋值变量
在写while循环的时候,发现了一个问题,在while循环内部对变量赋值、定义变量、数组定义等等环境,在循环外面失效。一个简单的测试脚本如下:#!/bin/bashecho "abc xyz" | while read linedo new_var=$linedoneecho new_var is null: $new_var?执行结果证明,$new_var的结果是空值。在google上查了查,才发现问题出在管道上。加上自己的总结,特分享两个使用while循环时的陷阱。