Bash If Statment help

0

Eu tenho isso se statment:

if $type = 1 then
 date +%s | md5 | base 64 | head -c $length >> $name.txt
        elseif $type = 2 then
        date +%s | shasum | base 64 | head -c $length >> $name.txt
                elseif $type = 3 then
                openssl rand -base64 $length  >> $name.txt
fi

e eu continuo recebendo o erro:

./password: line 32: syntax error near unexpected token 'fi'
./password: line 32: 'fi'

provavelmente eu estou fazendo algo bobo, mas não consigo descobrir onde estou errado!

Obrigado antecipadamente !!

    
por Dominic 26.03.2016 / 10:55

1 resposta

-1

Sempre organize seu código e use -eq sempre que executar condições com números inteiros

if [ $type -eq 1 ]
        then 
     date +%s | md5 | base 64 | head -c $length >> $name.txt 

   elif [ $type -eq 2 ]
       then 
           date +%s | shasum | base 64 | head -c $length >> $name.txt 

   elif [ $type -eq 3 ]
     then 
         openssl rand -base64 $length >> $name.txt 

fi
    
por Shantanu Bedajna 26.03.2016 / 12:28