if stament no shell script

0

Como escrever em if [ -z $str1 && -z $str2 ] , "&&" não funciona, se escrever [ -z $str1 ] , isso é trabalho. Eu quero uma vez duas cordas

#!/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
    
por qwerty 31.10.2014 / 19:35

2 respostas

1

Você pode usar -a no lugar de && . De man test

   EXPRESSION1 -a EXPRESSION2
          both EXPRESSION1 and EXPRESSION2 are true

A forma && do operador lógico AND é válida dentro da construção de teste estendida do bash [[ ... ]] , mas não dentro dos testes do formulário [ ... ] .

    
por steeldriver 31.10.2014 / 20:20
4

Eu não sou o especialista basilar em AU, mas tenho a sensação que você quer dizer:

#!/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

Para que a saída seja "primeiro e segundo comprimento da string é zero" somente se os dois comprimentos forem zero, certo?

    
por Jacob Vlijm 31.10.2014 / 20:16