获取命令输出; 运行 另一个命令如果包含 X

Get output of command; run another command if contains X

我想写一个bash脚本:

  1. 运行命令 bux
    • a) 如果 bux 的输出包含 have,则什么也不做
    • b) 如果 bux 的输出包含 X,运行 命令 Y
    • c) 如果 bux 的输出包含 Z,运行 命令 A

这是一个脚本,应该可以做你想做的事(前提是 bux、Y 和 A 是 bash 脚本):

#!/bin/bash
OUTPUT=`source bux`
if [[ "$OUTPUT" =~ have ]]; then
   :
elif [[ "$OUTPUT" =~ X ]]; then
   source Y  
elif [[ "$OUTPUT" =~ Z ]]; then
   source A
fi

如果您想改为执行程序(前提是路径中有 bux、Y 和 A):

#!/bin/bash
OUTPUT=`bux`
if [[ "$OUTPUT" =~ have ]]; then
    :
elif [[ "$OUTPUT" =~ X ]]; then
    Y
elif [[ "$OUTPUT" =~ Z ]]; then
    A
fi  

像这样的 case 语句中的 glob 模式:

case $(bux) in
    *have*)
        echo 'do nothing?'
        ;;
    *X*)
        Y
        ;;
    *Z*)
        A
        ;;
    *)
        echo 'default case.'  # display an error ...?
        ;;
esac

显然,如果您愿意,模式可以更复杂,但这似乎可以满足您的要求。