shell中while循环的陷阱 |
您所在的位置:网站首页 › linux的变量不起作用 › shell中while循环的陷阱 |
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 在写while循环的时候,发现了一个问题,在while循环内部对变量赋值、定义变量、数组定义等等环境,在循环外面失效。 一个简单的测试脚本如下: #!/bin/bash echo "abc xyz" | while read line do new_var=$line done echo new_var is null: $new_var?执行结果证明,$new_var的结果是空值。 问题出在管道上。先看看下面的内容。 while循环的写法有好几种,它的语法结构为: while test_cmd_list; do cmd_list; done 但更经常地,while循环更多地用于读取标准输入的内容来实现循环。有以下几种写法: 写法一:使用管道传递内容,这是用的最多、但却最烂的写法 echo "abc xyz" | while read line do ... done 写法二: while read line do ... done |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |