我正在从命令行运行一个脚本,如果设置了 4 个变量,它会运行一堆 Jmeter 测试。
脚本有效,但我添加了部分,因此如果服务器未知,脚本将结束。
if [ echo "$2" != | grep -iq "^hibagon" ] || [ echo "$2" != | grep -iq "^kameosa" ] ;then
echo "Unkown server stopping tests"
else
echo "Continueing to tests"
当脚本的这一部分运行时,如果未找到 Hibagon 或 Kameosa(不区分大小写),它将结束脚本。
我希望命令行回显未知服务器停止测试然后结束,但目前它只是以没有回显结束
这是一个奇怪的语法。试试这个:
if echo "$2" | grep -iq "^hibagon|^kameosa";
then
echo "Continuing to tests"
else
echo "Unkown server, stopping tests"
fi
或者,如果您使用的是 bash:
if [[ "$2" =~ ^hibagon ]] || [[ "$2" =~ ^kameosa ]]
then
echo "Continuing to tests"
else
echo "Unkown server, stopping tests"
fi
首先测试[ echo "$2" != | grep -iq "^hibagon" ]
是错误的,然后您只能使用一个带有否定标志的(扩展)grep,-v
将两个词放在一个正则表达式^(hibagon|kameosa)
中。fi
也不见了。但我想这只是一个错字。
if echo "$2" | egrep -ivq "^(hibagon|kameosa)"; then
echo "Unknown server stopping tests"
else
echo "Continuing to tests"
fi
如果你喜欢它,甚至:
if egrep -ivq "^(hibagon|kameosa)" <<< "$2"; then