Como avaliar um comprimento variável no shell script?

0

Eu quero escrever um script de shell, no qual ele irá chamar um comando diferente de acordo com o tamanho da variável. Mas eu ainda não descobri.

Meu script não trabalhado está aqui:

for i in n5 n25 
if ${#i} == 2;
then 
do 
    python two.py n5
elif ${#i} == 3;
do 
    python three.py n25
fi

Como avaliar o tamanho da variável no script de shell?

    
por Zen 30.07.2014 / 14:58

1 resposta

1

Você provavelmente quer:

for i in n5 n25 
do
   if [ ${#i} -eq 2 ]; then 
       python two.py n5
   elif [ ${#i} -eq 3 ]; then
       python three.py n25
   fi
done

Observe que:

  • for vai com do ... done .
  • if vai com then ... [elif; then] ... [else; then] ... fi .
  • as comparações de números inteiros precisam de -eq (equal) em vez de = (para strings) e são gravadas entre colchetes ( if [ "$var" -eq 2 ] , etc).
por 30.07.2014 / 15:01