Russian Qt Forum
Ноябрь 22, 2024, 14:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Подавить вывод компиляции в консоли, оставить только вывод ошибок  (Прочитано 4441 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Декабрь 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
Записан
spirits25
Гость
« Ответ #1 : Январь 22, 2013, 17:12 »

А стандартные темы, такие как 2> (перенаправление потока ошибок) и 1> (перенаправление потока вывода) тебе подойдут.

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


Страница сгенерирована за 0.044 секунд. Запросов: 23.