linux捕获命令结果 linux获取命令执行结果( 二 )


java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
check java version results are:
It is going to install jdk 1.8 version
怎么回事?命令jdk已经安装了,为什么还是没有匹配到呢?根据第二个例子,我们手动执行命令 java -version 然后执行命令$? 得到的结果为0,说明命令是执行成功的 。怎么还是没有获取到命令的输出呢?
这个现象出现的原因是有可能命令的执行结果被重定向了 。
试着将check_results=`java -version` 改成check_results=`java -version 1 /dev/stdout` 和 check_results=`java -version 2 /dev/sdtout` 看看输出是否有变化
为了防止这种情况的发生 , 最终我们将上面改成check_results=`java -version 21` 这样得到了想要的结果 。
使用保存结果的变量名=`需要执行的linux命令` 这种方式来获取命令的输出时,注意的情况总结如下:
1)保证反单引号内的命令执行时成功的 , 也就是所命令执行后$?的输出必须是0,否则获取不到命令的输出
2)即便是命令的返回值是0 , 也需要保证结果是通过标准输出来输出的,而不是标准错误输出,否则需要重定向
因此我们推荐使用保存结果的变量名=`需要执行的linux命令 21 `的方式来获取命令的执行结果 。
感兴趣的朋友可以试下第二个例子中改成check_results=`iscsiadmm --version 21`的结果 。
linux find命令查找结果怎么获取1、find的语法:
find
[起始目录]
寻找条件
操作
2、表述方式:find
PATH
OPTION
[-exec
COMMAND
{
}
\;]
find命令会根据用户给的option,也就是寻找条件从用户给出的目录开始对其中文件及其下子目录中的文件进行递归搜索 。该命令中的寻找条件可...
Linux下用awk获取某一行或某一列的查询结果背景:可能我们会遇到获取Linux命令执行结果的某一列或某一行的信息 。
awk -F'\t''{print $1}'name.txt
其中-F表示分割符,本例为\t,$1表示第1列 ,$0表示全部 。
ls -lrt| awk -F ' ' '{print $NF}'
好处:这种情况下不需要知道所获取信息在哪一列 , 直接取最后一列即可 。
其中-F表示分割符,本例为空格 , $NF表示最后一列,$(NF-1)表示倒数第二列 。
awk 'NR awk 'NR==1,NR==4 {print}'file
行号等于1和4的打印出来
awk 'END {print}' name.txt
部分参考
Linux Shell 怎样获得命令的执行结果可以用
$?
获取上一条shell命令的返回结果 。
一般的约定是:
表示成功,非0表示失败 。
例如:你可以试验一下
执行正确的shell
命令:
执行
ls,然后紧接着
echo
$?
执行错误的shell
命令:
执行
ls
/abcdefg,然后紧接着
echo
$?
关于linux捕获命令结果和linux获取命令执行结果的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读