多次碰到需要一次性给多个变量赋值的问题,经搜索发现一种比较方便的方法——命名管道

命名管道介绍: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

 

相关文章:

  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
  • 2022-03-02
  • 2022-12-23
  • 2022-12-23
  • 2021-09-17
猜你喜欢
  • 2021-06-13
  • 2021-10-08
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案