Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: Fregloin от Декабрь 13, 2012, 19:54



Название: Подавить вывод компиляции в консоли, оставить только вывод ошибок
Отправлено: 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> (перенаправление потока вывода) тебе подойдут.

Например, запускай скрипт:
Код:
./myscript 1> /dev/null
тогда stdout ты не увидишь.
Или я что-то не понял?=)