не удается увеличить переменную внутри цикла в сценарии bash

Я запускаю сценарий bash в Ubuntu 18.04. Скрипт должен запустить скрипт python 10 раз. Я сделал следующее testbash.sh сценарий:

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

это приводит к ошибке:

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

Я также попытался заменить ((count++) на:

count = $(expr $count+1)

но также не был успешным.

5
задан user9371654
источник

1 ответов

текущего shebang указывает sh как переводчик. ((count++)) не работает sh, работает в bash. Измените shebang на

#!/bin/bash

следующий синтаксис поддерживается sh:

count=$(($count+1))

или даже

count=$((count+1))

насколько я знаю, это портативный (POSIX) способ.

1
отвечен Kamil Maciorowski 2018-06-15 05:46:47
источник

Другие вопросы bash bash-scripting script shell shell-script