使用 bash 进行并行测试
Parallel Testing with bash
我有一系列的测试,我不太擅长bash。但这些是我拥有的工具。问题来了。
我需要在回调中搜索字符串。我正在寻找 "From="。如果该字符串存在,我基本上想转到我创建的另一个名为 BAIL 的函数,它会发出一条带有消息的恐慌。
或者我希望它只记录 FROM 字段为空,然后继续。
如果这是 ruby 它将是
( TURE && TRUE ) || TRUE
但是我在bash这里有它:
echo "$inbound_callback" | grep "From=$FROM" || BAIL "IB: FROM was NOT Blocked '$FROM'") || \
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'"
我是否必须用某些东西包裹条件?
您根本不需要外部实用程序。 shell 本身可以检查字符串并执行匹配。
case $inbound_callback in
*From=*) BAIL "IB: FROM was NOT Blocked '$FROM'";;
*) LOG "[$FROM -> $TO] IB: Found FROM '$FROM'";;
esac
这只是在 inbound_callback
的值中的任何位置寻找文字字符串 From=
。如果这不是您想要的,也许可以重新表述您的问题以明确条件应该是什么。
你对问题的描述听起来像你想说的
echo "$inbound_callback" | grep -q "From=" &&
BAIL "IB: FROM was NOT Blocked '$FROM'" ||
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'"
(请注意真实情况下的 &&
,并使用 grep -q
来避免成功匹配的输出。我完全删除了 $FROM
,就像你说的那样想搜索五个字符 From=
.)
我有一系列的测试,我不太擅长bash。但这些是我拥有的工具。问题来了。
我需要在回调中搜索字符串。我正在寻找 "From="。如果该字符串存在,我基本上想转到我创建的另一个名为 BAIL 的函数,它会发出一条带有消息的恐慌。
或者我希望它只记录 FROM 字段为空,然后继续。
如果这是 ruby 它将是
( TURE && TRUE ) || TRUE
但是我在bash这里有它:
echo "$inbound_callback" | grep "From=$FROM" || BAIL "IB: FROM was NOT Blocked '$FROM'") || \
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'"
我是否必须用某些东西包裹条件?
您根本不需要外部实用程序。 shell 本身可以检查字符串并执行匹配。
case $inbound_callback in
*From=*) BAIL "IB: FROM was NOT Blocked '$FROM'";;
*) LOG "[$FROM -> $TO] IB: Found FROM '$FROM'";;
esac
这只是在 inbound_callback
的值中的任何位置寻找文字字符串 From=
。如果这不是您想要的,也许可以重新表述您的问题以明确条件应该是什么。
你对问题的描述听起来像你想说的
echo "$inbound_callback" | grep -q "From=" &&
BAIL "IB: FROM was NOT Blocked '$FROM'" ||
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'"
(请注意真实情况下的 &&
,并使用 grep -q
来避免成功匹配的输出。我完全删除了 $FROM
,就像你说的那样想搜索五个字符 From=
.)