bash: синтаксическая ошибка около неожиданного токена `do '

[F1]
2
задан 4 April 2018 в 09:15

3 ответа

Сообщение об ошибке сообщает о неожиданном do, потому что вы использовали его неправильно: do - это зарезервированное слово, используемое в циклах for, case, while и until. Поскольку предыдущий комментарий заканчивается на for i in $*, я предполагаю, что вы просто забыли добавить разрыв строки там:

# now calculate the average of the numbers given on command line as cmd args
for i in $*
do
  # addition of all the numbers on cmd args
  temp_total='expr $temp_total + $1 '
done

man bash / SHELL GRAMMAR / Compound Commands объясняет, как построить for и другие циклы , Если вы просто хотите перебрать все аргументы bash, также поддерживает короткую форму, я буду комбинировать ее с bash Арифметическим расширением здесь:

# now calculate the average of the numbers given on command line as cmd args
for i
do
  # addition of all the numbers on cmd args
  temp_total=$((temp_total+i))
done
5
ответ дан 22 May 2018 в 11:37

Сообщение об ошибке сообщает о неожиданном do, потому что вы использовали его неправильно: do - это зарезервированное слово, используемое в циклах for, case, while и until. Поскольку предыдущий комментарий заканчивается на for i in $*, я предполагаю, что вы просто забыли добавить разрыв строки там:

# now calculate the average of the numbers given on command line as cmd args for i in $* do # addition of all the numbers on cmd args temp_total='expr $temp_total + $1 ' done

man bash / SHELL GRAMMAR / Compound Commands объясняет, как построить for и другие циклы , Если вы просто хотите перебрать все аргументы bash, также поддерживает короткую форму, я буду комбинировать ее с bash Арифметическим расширением здесь:

# now calculate the average of the numbers given on command line as cmd args for i do # addition of all the numbers on cmd args temp_total=$((temp_total+i)) done
5
ответ дан 17 July 2018 в 17:33

Сообщение об ошибке сообщает о неожиданном do, потому что вы использовали его неправильно: do - это зарезервированное слово, используемое в циклах for, case, while и until. Поскольку предыдущий комментарий заканчивается на for i in $*, я предполагаю, что вы просто забыли добавить разрыв строки там:

# now calculate the average of the numbers given on command line as cmd args for i in $* do # addition of all the numbers on cmd args temp_total='expr $temp_total + $1 ' done

man bash / SHELL GRAMMAR / Compound Commands объясняет, как построить for и другие циклы , Если вы просто хотите перебрать все аргументы bash, также поддерживает короткую форму, я буду комбинировать ее с bash Арифметическим расширением здесь:

# now calculate the average of the numbers given on command line as cmd args for i do # addition of all the numbers on cmd args temp_total=$((temp_total+i)) done
5
ответ дан 23 July 2018 в 18:22

Другие вопросы по тегам:

Похожие вопросы: