Назад | Перейти на главную страницу

процесс в фоновом режиме

У меня есть цикл в сценарии оболочки, и требуется время, чтобы обработать только несколько файлов в списке. Как запустить процесс в фоновом режиме и выбрать следующий файл, пока первый файл все еще обрабатывается?

   for newfile in `ls new*`
    do
    time consuming process &
    done

Я попробовал & в конце команды после> / dev / null 2> & 1, но похоже, что это не работает.

Чтобы перевести процесс в фоновый режим, просто поместите & в конце и удалите ; вы использовали для завершения команды до done

for newfile in new* ; do
    long_running_command 2>&1 > /dev/null &
done

Вам не нужен

`ls new*`

вы можете просто использовать

new* 

оболочка расширит его за вас.

пример

touch new1
touch new2
for newfile in new* ; do ls $newfile 2>&1 > /dev/null & done

производит

[1] 92197
[1]+  Done                    ls $newfile 2>&1 > /dev/null
[1] 92198
[1]+  Done                    ls $newfile 2>&1 > /dev/null