- bash: синтаксическая ошибка рядом с неожиданным токеном `do ' - PullRequest
0 голосов
/ 17 апреля 2020

Я делаю следующее на своем терминале Ma c:

sudo for i in `seq 0 9`; do nohup my_command > log_$i.txt & done

, но получаю следующую ошибку:

-bash: syntax error near unexpected token `do'

В чем проблема и как ее исправить?

PS

Я проверил некоторые предложения людей здесь и вот они:

1)

(base) user@SERVER:/directory$ sudo for i in `seq 0 9`; do nohup my_command > log_$i.txt &; done

-bash: syntax error near unexpected token `do'

2)

(base) user@SERVER:/directory$ sudo for i in `seq 0 9`; do nohup my_command > log_$i.txt ; done

-bash: syntax error near unexpected token `do'

3)

(base) user@SERVER:/directory$ sudo for i in `seq 0 9`; do nohup my_command > log_$i.txt done

-bash: syntax error near unexpected token `do'

4)

(base) user@SERVER:directory$ sudo bash -c for i in `seq 0 9`; do nohup my_command > log_$i.txt & done

-bash: syntax error near unexpected token `do'

1 Ответ

2 голосов
/ 17 апреля 2020

Запуск for через sudo не работает, так как sudo ожидает команду . Вместо этого вы можете запустить l oop через bash:

sudo bash -c 'for i in {0..9}; do nohup command > log_$i.txt & done'

. Вам не нужно было бы использовать команду seq, поскольку bash имеет {0..9} для поддержки циклов "range".

См. bash управление заданиями для получения дополнительной информации о & (которая помещает "задание" - команду, которую вы выполняете - в фоновом режиме).

...