Ответ 1
Вы должны поместить &
внутри ()
, если вы хотите запускать все задания параллельно в фоновом режиме.
time for i in `ls /tmp/chunk*`; do
(cat $i | tr ' ' '\n' | sort | uniq > /tmp/line${i:10} &)
done
time for i in `ls /tmp/chunk*`; do (cat $i | tr ' ' '\n' | sort | uniq > /tmp/line${i:10}) & ;done
bash: syntax error near unexpected token `;'
Какова синтаксическая ошибка в приведенной выше команде? Я также попытался использовать {}
и завершил команды с помощью ;
. Но такая же ошибка появляется...
Вы должны поместить &
внутри ()
, если вы хотите запускать все задания параллельно в фоновом режиме.
time for i in `ls /tmp/chunk*`; do
(cat $i | tr ' ' '\n' | sort | uniq > /tmp/line${i:10} &)
done
Вы можете включить и в наручники:
time for i in `ls /tmp/chunk*`; do
{(cat $i | tr ' ' '\n' | sort | uniq > /tmp/line${i:10}) &};
done
& является разделителем и поэтому избыточным; И.Е. удалить окончательный;
for i in /tmp/chunk*; do tr ' ' '\n' <$i | sort -u > /tmp/line${i:10}& done