【问题标题】:bash how to get var from file with multiple linesbash如何从多行文件中获取var
【发布时间】:2014-02-22 00:48:08
【问题描述】:

我有两个文件,第一个包含一系列名称:

CONTAINER1
CONTAINER2
CONTAINER3
CONTAINER4

当 sintaxis 为 ./script.sh CONTAINER1 时,第二个脚本运行

 CONT=$1
 PID=`opmnctl status -noheaders -fmt %prt30%pid7R  | grep -w $CONT | awk '{print $3}'`

 netstat -anp | grep $PID | grep ESTABLISHED > $CONT-temp

是否可以通过解析第一个文件的每一行来运行第二个脚本?我是 bash 的新手,任何帮助将不胜感激。

提前致谢

【问题讨论】:

  • 其实它只是一个更大脚本的一小部分,对我来说重要的是如何实现这一点,基本上使用该命令我从我的应用程序服务器的容器中获取已建立的连接..
  • 仅供参考,对于既不是 (1) shell 内置函数,也不是 (2) 导出到环境的变量,通常使用小写名称。此外,作为一个正确性问题,您的第二个脚本应该引用它的扩展——所以grep "$pid" 而不是grep $pid

标签: bash


【解决方案1】:

您可以为此使用 xargs:它从其标准输入读取单词并将它们附加到给定的命令。通常它一次需要几个参数,因此它会尽可能少地调用给定的命令,但您可以使用-L 选项来控制它:

xargs -L 1 echo "name is:" < containers.txt

生产

name is: CONTAINER1
name is: CONTAINER2
name is: CONTAINER3
name is: CONTAINER4

你会写

xargs -L 1 ./script.sh < containers.txt

【讨论】:

  • 你让我成为了一天的好伙伴……这正是我所需要的
猜你喜欢
  • 2018-01-09
  • 2013-11-06
  • 2011-08-26
  • 2016-09-12
  • 2015-05-20
  • 2022-12-26
  • 2018-12-19
  • 2017-05-07
  • 2011-08-26
相关资源
最近更新 更多