какую версию Python делают Вам установили его. проверить python -V
перед выполнением ./configure
, удостоверьтесь, что Вам завершили следующие предпосылки.
* GCC 4.2 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)
Теперь я остановился на этой версии меньше:
#!/bin/bash
in=/tmp/grunt_in
out=/tmp/grunt_out
err=/tmp/grunt_err
if [ ! -p $in ]
then
mkfifo $in
mkfifo $out
mkfifo $err
{ script -q -c "pig 1>$out 2>$err" <>$in; rm $in $out $err; } &
fi
{
echo "fs $*"
echo
echo "-- end"
} >$in
cat $err >&2 &
catpid=$!
sed -n -u '/^grunt> -- end/q;/^grunt>/d;p' <$out
kill $catpid
Поэтому я просто перенаправляю stderr внутри команды script
. Я также заменил круглые скобки фигурными и удалил disown
, потому что не видел в этом никаких преимуществ. Я также заменил $ err
на FIFO, чтобы иметь возможность вывести его раньше, но это также добавляет некоторые сложности, чтобы убить кота
.
Пока это работает довольно хорошо , за исключением , что когда я усекаю вывод, пропуская его через head
, я получаю усеченный или дополнительный вывод в следующей команде. По-видимому, мне нужен способ правильно промыть именованные каналы. Буду рад, если у кого-нибудь есть подсказки.