答:在子shell执行,那么变量的值总是不能如愿以偿的改变,示例如下:

#!/bin/sh
var="jello"
cat "jello.txt" | while read line
do
  var=${line}
done
echo "var=${var}"

看见示例中的管道了吗!这是个陷阱,会导致while在子shell 中执行,以至于var的值并没有被改变

解决方法:

#!/bin/sh
while read line
do
  var=${line}
done < "jello.txt" echo "var=${var}"

  

最新文章

  1. SQL Server常见问题介绍及快速解决建议
  2. problem-eclipse创建maven项目报错
  3. saiku执行速度慢
  4. Codeforces Round #372 (Div. 1) B. Complete The Graph (枚举+最短路)
  5. 在java中HttpServletResponse响应中文出现乱码。
  6. SGU 163.Wise King
  7. postgresql 多实例运行
  8. linux面试
  9. 保存和恢复 Android Fragment 的状态
  10. 常见浏览器的宽高代码写法!有原生JavaScript和jquery两种写法-------------------------------以及我的个人网站
  11. InnoDB关键特性之自适应hash索引
  12. 20ViewPager demo1,2:接收ViewPager展示View的使用
  13. 【POJ 1179】Polygon
  14. 51单片机学习笔记(清翔版)(13)——LED点阵、74HC595
  15. ucos获得系统时间OSTimeGet();
  16. Android Locale
  17. Hadoop学习之路(十三)MapReduce的初识
  18. 做题记录 To 2019.2.13
  19. NAND FLASH驱动程序
  20. printf回到上一行开头以及回到本行开头的方法

热门文章

  1. TcMalloc的介绍以及Windows下安装使用
  2. CentOS 6 网络设置
  3. MYSQL中的BlackHole引擎
  4. php中&amp;运算符的理解与使用
  5. itertools模块(收藏)
  6. php array_rand()函数从数组中随机选择一个或多个元素
  7. selenium WebDriver处理文件下载
  8. html04
  9. 浏览器测试string是否为图片
  10. mysql回滚日志