![shell 脚本中的 if 语句](https://linux22.com/image/864453/shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%20if%20%E8%AF%AD%E5%8F%A5.png)
怎么写呢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 的扩展测试构造中有效[[ ... ]]
,但在形式的测试中无效[ ... ]
。