bash中一次性给多个变量赋值--命名管道的使用
2012-06-02 11:02
274 查看
多次碰到需要一次性给多个变量赋值的问题,经搜索发现一种比较方便的方法——命名管道
命名管道介绍:http://www.linuxjournal.com/article/2156?page=0,0
例子:现有字符串“a b c d”需要分别赋值给变量k1 k2 k3 k4,使用命名管道方法如下:
$ mkfifo npipe
$ (echo "a b c d" > npipe)&
$ read k1 k2 k3 k4 < npipe
此时k1 k2 k3 k4已经分别赋值成a b c d
注意:不能用‘|’ 直接给read变量,因为echo "a b c d" | read k1 k2 k3 k4 时,read在子shell中执行,执行结果不能影响父shell。
网上有讨论:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=356028
命名管道介绍:http://www.linuxjournal.com/article/2156?page=0,0
例子:现有字符串“a b c d”需要分别赋值给变量k1 k2 k3 k4,使用命名管道方法如下:
$ mkfifo npipe
$ (echo "a b c d" > npipe)&
$ read k1 k2 k3 k4 < npipe
此时k1 k2 k3 k4已经分别赋值成a b c d
注意:不能用‘|’ 直接给read变量,因为echo "a b c d" | read k1 k2 k3 k4 时,read在子shell中执行,执行结果不能影响父shell。
网上有讨论:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=356028
相关文章推荐
- 在Bash脚本中使用命名管道(FIFO)
- [黑马程序员] _变量的基本使用方法(赋值、占位符、接收、命名规则)
- [黑马程序员] _变量的基本使用方法(赋值、占位符、接收、命名规则)
- shell脚本中使用了管道符,导致变量赋值丢失的原因
- [使用重叠IO的命名管道服务器示例]Named Pipe Server Using Overlapped I/O
- shell 使用管道符时变量的问题
- (转载)php的类中可以不定义成员变量,直接在构造方法中使用并赋值吗?
- SQL之变量的使用和赋值
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别
- C#使用命名管道通过网络在进程之间进行通信
- Linux进程间通信——使用命名管道
- php使用post数组的键值创建同名变量并赋值的方法
- linux shell bash使用管道|和read结合时问题解决
- 细谈 Web Api 图片上传,在使用 Task.ContinueWith 变量无法赋值问题的解决办法!
- MySQL存储过程中使用SELECT …INTO语句为变量赋值(转)
- 使用移位运算的时候,没有把最终的值重新赋值到原变量,导致死循环
- SQl Server 动态SQL给变量赋值 和OBJECTPROPERTY函数使用及判断表 存储过程 视图等是否存在
- 命名管道的使用
- Linux进程间通信——使用命名管道
- MySQL中变量的定义和变量的赋值使用(转)