Linux 需要用一个变量比较两个字符串

Linux 需要用一个变量比较两个字符串,linux,shell,if-statement,ksh,Linux,Shell,If Statement,Ksh,我有两个变量,分别是model\u name和status。需要检查model\u name是否在model1或model2中,并且状态处于失败状态,然后必须使用格式1向用户发送邮件,否则邮件应作为默认格式发送 我试过了 If [[ $model_name = "model1" ]] -o [[ $model_name = "model2"]] -a [[$status = "Failed" ]] then format1 else Default format fi 但是这不起作用,默认格

我有两个变量,分别是
model\u name
status
。需要检查
model\u name
是否在model1或model2中,并且
状态
处于失败状态,然后必须使用格式1向用户发送邮件,否则邮件应作为默认格式发送

我试过了

If [[ $model_name = "model1" ]] -o [[ $model_name = "model2"]] -a [[$status = "Failed" ]] then format1
else Default format 
fi

但是这不起作用,默认格式的邮件只接收send

-o
-a
不是
操作的操作员。只需分别使用
|
&

另外,您可能忘记了
$status
之前的空格,并且
if
命令中没有大写字母

您的最终测试线应如下所示:


如果[[$model_name=“model1”].[$model_name=“model2”]]和&[$status=“Failed”]
-o
-a
不是
操作的运算符。只需分别使用
|
&

另外,您可能忘记了
$status
之前的空格,并且
if
命令中没有大写字母

您的最终测试线应如下所示:


如果[[$model\u name=“model1”].[$model\u name=“model2”]&&[$status=“Failed”]]

谢谢。。。我也试过,但没用。如果[$model_name=“model1”]&&&[$status=“Failed”]单个模型名称comaprison工作正常,但在执行或不执行其条件时working@user8592197即使是对
$model\u name
比较的偏执?像
([$model_name=“model1”].[$model_name=“model2”]])&&[$status=“Failed”]
?因为这是谢谢Drosvar…现在开始工作了…再次感谢Hanks。。。我也试过,但没用。如果[$model_name=“model1”]&&&[$status=“Failed”]单个模型名称comaprison工作正常,但在执行或不执行其条件时working@user8592197即使是对
$model\u name
比较的偏执?像
([$model_name=“model1”].[$model_name=“model2”]])&&[$status=“Failed”]
?因为这是谢谢Drosvar…现在开始工作了…再次谢谢