击:如果[“回声测试”==“测试”]; 然后回声“壳牌回声测试输出测试”网络连接; 可能?

是否有可能使用bash从外壳执行一个命令,如果它返回一个特定的值(或空单)执行命令?

if [ "echo test" == "test"]; then echo "echo test outputs test on shell" fi

--------------解决方案-------------

是的,你可以使用反引号或$()语法:

if [ $(echo test) = "test" ] ; then
echo "Got it"
fi

此时应更换$(echo test)

"`echo test`"

要么

"$(echo test)"

如果你运行该命令的输出可以为空。

与POSIX“刺都是平等的” test操作符是=

这样的事情?

#!/bin/bash

EXPECTED="hello world"
OUTPUT=$(echo "hello world!!!!")
OK="$?" # return value of prev command (echo 'hellow world!!!!')

if [ "$OK" -eq 0 ];then
if [ "$OUTPUT" = "$EXPECTED" ];then
echo "success!"
else
echo "output was: $OUTPUT, not $EXPECTED"
fi
else
echo "return value $OK (not ok)"
fi

把命令betweeen $(和)或反向引号(')将取代该表达式到命令的返回值。 所以基本上:

if [ `echo test` == "test"]; then
echo "echo test outputs test on shell"
fi

要么

if [ $(echo test) == "test"]; then
echo "echo test outputs test on shell"
fi

会做的伎俩。

您可以检查exit_code以前的方案像:

someprogram
id [[ $? -eq 0 ]] ; then
someotherprogram
fi

请注意 ,通常情况下, 0值意味着成功完成。

你能做到更短:

someprogram && someotherprogram

通过上述someotherprogram只有当执行someprogram成功完成。 或者,如果你想测试不成功退出:

someprogram || someotherprogram

HTH

分类:庆典 时间:2015-03-15 人气:2
本文关键词: 庆典
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.416 (s). 10 q(s)