繁体   English   中英

重击:用“;”回显多个命令的结果

[英]Bash: echo result of multiple commands with ';'

我有两个命令,它们会在以下结果中回显我:

[root@in SNMP]# /usr/protei/utils/SNMP/check_cpe.sh general;/usr/protei/utils/SNMP/check_cpe.sh smpp;
OK
VERY OK

接下来,我将在整个循环中形成此命令行,问题是,如何将这些命令的结果回显到控制台?

#!/bin/sh

RUN="/usr/protei/utils/SNMP/check_cpe.sh general;/usr/protei/utils/SNMP/check_cpe.sh smpp;"
RES=`$RUN`
echo "$RES"

什么也没给我。 如果我在每个命令的末尾添加>> / dev / null,那么我只会收到第一个结果“ OK”

如果要对两个命令的执行进行分组,请编写一个函数。

run() {
  /usr/protei/utils/SNMP/check_cpe.sh general
  /usr/protei/utils/SNMP/check_cpe.sh smpp
}

在Unix Shell中,您有两个文件描述符:标准输出和标准错误。 如果您已将标准输出重定向到/ dev / null,但仍看到“ OK”,则应用程序会将“ OK”写入标准错误。 如果要结合标准错误和标准输出,请执行以下操作:

result=$(run 2>&1)

不要在2018年使用反引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM