Делаю вот так:
system("echo ${inv_line} | wgrib $in_grib -i -text -o $out_csv &>/dev/null")
Я сейчас сделал то же самое в 2-х альтернативных вариантах: один с использованием обратных кавычек и один - system, вызывающий bash -c. Но вопрос в том, насколько это корректно: обратные кавычки почему-то не «съедают» STDERR (ведь &>/dev/null же!), выводя его благополучно на экран, а bash -c - это, очевидно, «не самое быстрое» решение.
Есть ещё идеи? :)