shell中while循环的陷阱

您所在的位置:网站首页 linux的变量不起作用 shell中while循环的陷阱

shell中while循环的陷阱

2024-07-13 07:45| 来源: 网络整理| 查看: 265

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