linux – 在Bash脚本中解析命令输出

linux – 在Bash脚本中解析命令输出,第1张

概述我想运行一个命令,提供以下输出解析它: [VDB VIEW][VDB] vhctest [BACKEND] domain.computername: ENABLED:RW:CONSISTENT [BACKEND] domain.computername: ENABLED:RW:CONSISTENT ... 我只对一些关键作品感兴趣,例如’ENAB 我想运行一个命令,提供以下输出并解析它:

[VDB VIEW][VDB] vhctest        [BACKEND] domain.computername: ENABLED:RW:CONSISTENT        [BACKEND] domain.computername: ENABLED:RW:CONSISTENT        ...

我只对一些关键作品感兴趣,例如’ENABLED’等.我不能只搜索ENABLED,因为我需要一次解析每一行.

这是我的第一个脚本,我想知道是否有人可以帮助我?

编辑:
我现在有:

cmdout=`mycommand`while read -r linedo   #check for key words in $linedone < $cmdout

我认为这样做了我想要的但是它似乎总是在命令输出之前输出以下内容.

./myscript.sh: 29: cannot open … : No such file

我不想写一个文件来实现这一点.

这是psudo代码:

cmdout=`mycommand`loop each line in $cmdout   if line contains        if line contains             output 1       else            output 0
解决方法 错误的原因是

done < $cmdout

认为$cmdout的内容是文件名.

你可以这样做:

done <<< $cmdout

要么

done <<EOF$cmdoutEOF

要么

done < <(mycommand)    # without using the variable at all

要么

done <<< $(mycommand)

要么

done <<EOF$(mycommand)EOF

要么

mycommand | while...done

但是,最后一个创建一个子shell,当循环退出时,循环中设置的任何变量都将丢失.

总结

以上是内存溢出为你收集整理的linux – 在Bash脚本中解析命令输出全部内容,希望文章能够帮你解决linux – 在Bash脚本中解析命令输出所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1023771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存