Название: Подавить вывод компиляции в консоли, оставить только вывод ошибок
Отправлено: Fregloin от Декабрь 13, 2012, 19:54
Привет, набросал простенький скриптик, который компилирует 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
Название: Re: Подавить вывод компиляции в консоли, оставить только вывод ошибок
Отправлено: spirits25 от Январь 22, 2013, 17:12
А стандартные темы, такие как 2> (перенаправление потока ошибок) и 1> (перенаправление потока вывода) тебе подойдут. Например, запускай скрипт: тогда stdout ты не увидишь. Или я что-то не понял?=)
|