shell 脚本中的 if 语句

shell 脚本中的 if 语句

怎么写呢if [ -z $str1 && -z $str2 ]"&&"不行,如果[ -z $str1 ]这样写是可以的。我想一次写两个字符串

#!/bin/bash

echo "Enter first string"
read str1

echo "Enter second string"
read str2

if [ -z $str1 && -z $str2 ];    
then    
    echo "firs and second string length is zero"
else    
    echo "firs and second string length is not zero"    
fi

答案1

我不是 AU 上的 bash 专家,但我感觉你的意思是:

#!/bin/bash

echo "Enter first string"
read str1

echo "Enter second string"
read str2

if [ -z "$str1" ] && [ -z "$str2" ]; then    
    echo "first and second string length is zero"
else    
    echo "first and second string length is not zero"    
fi

因此,仅当两个字符串的长度都为零时,输出才是“第一个和第二个字符串的长度为零”,对吗?

答案2

您可以使用-a代替&&。从man test

   EXPRESSION1 -a EXPRESSION2
          both EXPRESSION1 and EXPRESSION2 are true

逻辑 AND 运算符的形式&&在 bash 的扩展测试构造中有效[[ ... ]],但在形式的测试中无效[ ... ]

相关内容