não pode incrementar uma variável dentro de um loop em um script bash

0

Estou executando um script bash no Ubuntu 18.04. O script precisa executar um script python 10 vezes. Eu fiz o seguinte script testbash.sh :

#!/bin/sh
count=1
while [ $count -le 9 ]
do
python /home/e/Documents/codemycode/test.py
((count++))
echo $count
done

Isso gera o erro:

./testbash.sh: 5: ./testbash.sh: count++: not found

Eu também tentei substituir o ((count ++) por:

count = $(expr $count+1)

Mas também não teve sucesso.

    
por user9371654 15.06.2018 / 06:56

1 resposta

1

Sua atual shebang especifica sh como intérprete. ((count++)) não funciona em sh , funciona em bash . Mude o shebang para

#!/bin/bash

A seguinte sintaxe é suportada por sh :

count=$(($count+1))

ou até mesmo

count=$((count+1))

Até onde eu sei, esse é um modo portátil (POSIX).

    
por 15.06.2018 / 07:03