Привет, набросал простенький скриптик, который компилирует qt либы и прогу в определенной последовательности с установкой по нужным путям. все работает, но утомляет вывод компилятора, в данном случае мне нужно только вывести имя компилируемой либы и ошибки gcc если таковые находятся при сборке. Как сделать? Читал про перенаправление потоков, но как их использовать в моем скрипте пока не понял.
Привожу скрипт
#!/bin/bash
REBUILD=0
if [ $# -ge 1 ]; then
if [[ $1 = "rebuild" ]];
then
REBUILD=1
fi
fi
LIB_DIR=libs
PLUGIN_DIR=plugins
PROJECT=scada_current
BUILD_TYPE=debug
LIB_DEST=/usr/local/lib/target_soft/programm
PLUGIN_DEST=/usr/local/lib/target_soft/programm/plugins
lib_names="railcore commonmodelobjects commonsceneobjects commoncontrollers railmodelobjects railsceneobjects railcontrollers hwmodelobjects hwsceneobjects hwcontrollers gorkamodelobjects sensorsceneobjects gorkacontrollers"
plugin_names="posdock objinspector"
rebuild_lib(){
CURRENT_PATH=/home/anton/builds/$PROJECT/$1/$2/$BUILD_TYPE/
cd $CURRENT_PATH
echo entering $CURRENT_PATH
if [ $REBUILD -eq 1 ]; then
make -f Makefile clean && make -j3 -f Makefile && cp -d lib* $3 && return 1 //Подозреваю что где то здесь
else
make -j3 -f Makefile && cp lib* $3 && return 1 //или здесь нужно подавлять вывод
fi
return 0
}
rebuild_bucket()
{
if [ $# -ne 3 ]; then
return $FALSE;
fi
local passed_array=( `echo "$2"` )
for CURRENT_LIB in $2
do
rebuild_lib $1 $CURRENT_LIB $3
if [ $? -ne 1 ]; then
echo "error while building ${CURRENT_LIB}"
exit $FALSE
fi
done
return $TRUE
}
argument=`echo ${lib_names[@]}`
rebuild_bucket $LIB_DIR "$argument" $LIB_DEST
argument=`echo ${plugin_names[@]}`
rebuild_bucket $PLUGIN_DIR "$plugin_names" $PLUGIN_DEST
exit $TRUE