Bash 脚本结束而不做回声



我正在从命令行运行一个脚本,如果设置了 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

相关内容

  • 没有找到相关文章

最新更新