#bash #function #background #subshell
#bash #функция #фон #Подоболочка
Вопрос:
Допустим, у меня есть функция bash
Yadda() {
# time-consuming processes that must take place sequentially
# the result will be appended >> $OUTFILE
# $OUTFILE is set by the main body of the script
# No manipulation of variables in the main body
# Only local-ly defined variables are manipulated
}
Разрешено ли мне вызывать функцию в качестве фонового задания в подоболочке? Например.:
OUTFILE=~/result
for PARM in $PARAMLIST; do
( Yadda $PARM ) amp;
done
wait
cat $OUTFILE
Что вы думаете?
Комментарии:
1. @eggyal к сожалению, я дома, а сервер Linux в офисе: P
Ответ №1:
Вы можете вызвать функцию в качестве фонового задания в подоболочке. Это будет работать точно так же, как вы ввели в своем примере.
Я вижу одну проблему в том, как вы продемонстрировали это в своем примере. Если некоторые процессы завершатся одновременно, они попытаются выполнить запись в выходной файл одновременно, и выходные данные могут перепутаться.
Я предлагаю разрешить каждому процессу записывать данные в свой собственный файл, а затем собирать файлы после завершения всех процессов.