echo "DISPLAY QL($Queue) CURDEPTH" \
    | runmqsc Queue_Managr \
    | grep 'CURDEPTH(' \
    | sed 's/.*CURDEPTH//' \
    | tr -d '()'.

有人能告诉我这个剧本是怎么写的吗?实际上,此命令显示特定队列的特定q_管理器的当前深度值。
我理解"DISPLAY QL($Queue) CURDEPTH" | runmqsc Queue_Managr"-这个命令显示队列名和curdepth{value}。
但我不明白。这个命令是如何工作的?

最佳答案

这是一条管道。它包含五个阶段,由管道字符|分隔。一个阶段的输出用作下一阶段的输入。
echo "DISPLAY blatti blatti"-这只是输出一些文本。
runmqsc Queue_Managr-使用文本作为runmqsc-命令的输入,该命令执行一些mq魔术并输出数据。
grep 'CURDEPTH('-grep是一个标准的unix实用程序。它过滤输入。在这种情况下,只允许包含文本CURDEPTH(的行进入下一阶段。
sed 's/.*CURDEPTH//'-sed是另一个标准实用程序。它是“流编辑器”的缩写,允许您在输入通过时对其进行编辑。在本例中,表达式's/.*CURDEPTH//'意味着删除从每行开始到文本CURDEPTH的所有内容。(请记住,只有包含该文本的行是从上一阶段传递过来的)。
tr -d '()'-最后是另一个标准实用程序tr,它还允许编辑从输入流到输出的文本。-d '()'表示从文本中删除字符()
最后阶段的输出显示在终端中(如果在终端中运行脚本)。
这是在unix shell中构建脚本的一种相当常见的方法。以某种方式生成输入数据,将其推送到一个命令中,并通过两个阶段对输出数据进行按摩,每个阶段都执行一点点操作。
关于grepsedtr的所有内容,都可以(也可能已经)撰写长篇论文。如果你感兴趣的话,可以查一下。

关于linux - Unix/Linux和MQ脚本说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33916426/

10-09 05:34