获取命令输出; 运行 另一个命令如果包含 X
Get output of command; run another command if contains X
我想写一个bash脚本:
- 运行命令
bux
- a) 如果
bux
的输出包含 have
,则什么也不做
- b) 如果
bux
的输出包含 X
,运行 命令 Y
- c) 如果
bux
的输出包含 Z
,运行 命令 A
- 它只会包含一个这些东西,不会包含多个x
这是一个脚本,应该可以做你想做的事(前提是 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
显然,如果您愿意,模式可以更复杂,但这似乎可以满足您的要求。
我想写一个bash脚本:
- 运行命令
bux
- a) 如果
bux
的输出包含have
,则什么也不做 - b) 如果
bux
的输出包含X
,运行 命令Y
- c) 如果
bux
的输出包含Z
,运行 命令A
- a) 如果
- 它只会包含一个这些东西,不会包含多个x
这是一个脚本,应该可以做你想做的事(前提是 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
显然,如果您愿意,模式可以更复杂,但这似乎可以满足您的要求。