Bash Shell 的 嵌套的While带来的问题
来源:互联网 发布:dns默认端口 编辑:程序博客网 时间:2024/06/12 23:12
今天遇到了一个问题,当使用了嵌套的while之后,发现变量的值不会变更,例如下列代码
while 1; do a = 1 cat file | while line || [ -n "${line}" ]; do a = 3 done echo "${a}"done
这段代码输出的a一直都是2,而不是3。就是说内层的while中对a的修改并没有作用到外层。
原因:
因为内层的while使用了管道,在Bash Shell中使用管道会生成一个子Shell,相当于调用了另一个Shell脚本。
有这种需求的,可以改一下代码:
while 1; do a = 1 while line || [ -n "${line}" ]; do a = 3 done < file echo "${a}"done换成重定向就可以了
阅读全文
0 0
- Bash Shell 的 嵌套的While带来的问题
- css嵌套带来的一个问题
- for 循环嵌套 while 的神奇问题
- 关于while read line循环的linux bash shell bug
- 63ScrollView嵌套ListView带来的问题以及解决方式
- ScrollView嵌套ListView带来的问题以及解决方式
- shell的while循环
- Shell的while命令
- 查看Bash嵌套的层级
- 交互式的bash shell
- Bash shell的构成
- Bash shell的构成
- bash shell的编程
- bash shell的快捷键
- bash shell的配置
- shell的if嵌套
- Spring带来的问题
- 脚本带来的问题
- 简单快捷解决caffe源代码在其他工程(MFC、QT、win32)中调用的问题
- 一次磁盘IO对比
- 简单文件备份工具(C#)
- Next Greater Element II
- 观察者模式Observer Pattern
- Bash Shell 的 嵌套的While带来的问题
- Namespaces (C++)
- linux命令便捷手册
- MVP&Retrofit&Rxjava&Gson的简单例子
- Codeforces 844C Sorting by Subsequences【思维】
- C语言之continue与break的异同
- VS项目属性的一些配置项的总结
- TensorFlow函数:tf.Session()和tf.Session().as_default()的区别
- Handler倒计时