LINUX.ORG.RU

История изменений

Исправление fargred, (текущая версия) :

Если хочешь выходить после команды, не ставь её в условие для if

make && {
    # если ок
    echo $i:	SUCCESS >> $LOGFILE
} || {
    # если фейл
    echo $i:	FAILURE >> $LOGFILE
    exit 1
}
Единственная западня такой формы – ты должен быть уверен, что последняя команда в списке после && отработает без ошибок в любом случае. Для простых echo это вполне допустимо. Дело в том, что результат выполнения списка (в фигурных скобках) это результат последенй выполненной в нём команды.

В принципе, это можно записать и короче

make && echo -e "$i:\tSUCCESS" >> $LOGFILE || {
    echo -e "$i:\tFAILURE" >> $LOGFILE
    exit 1
}
или даже
make && echo -e "$i:\tSUCCESS" >> $LOGFILE || { echo -e "$i:\tFAILURE" >> $LOGFILE; exit 1; }
Если список употребляется в однострочнике, перед закрывающей фигурной скобкой нужна точка с запятой.

Исходная версия Deleted, :

Если хочешь выходить после команды, не ставь её в условие для if

make && {
    # если ок
    echo $i:	SUCCESS >> $LOGFILE
} || {
    # если фейл
    echo $i:	FAILURE >> $LOGFILE
    exit 1
}
Единствая западня такой формы – ты должен быть уверен, что последняя команда в списке после && отработает без ошибок в любом случае. Для простых echo это вполне допустимо. Дело в том, что результат выполнения списка (в фигурных скобках) это результат последенй выполненной в нём команды.

В принципе, это можно записать и короче

make && echo -e "$i:\tSUCCESS" >> $LOGFILE || {
    echo -e "$i:\tFAILURE" >> $LOGFILE
    exit 1
}
или даже
make && echo -e "$i:\tSUCCESS" >> $LOGFILE || { echo -e "$i:\tFAILURE" >> $LOGFILE; exit 1; }
Если список употребляется в однострочнике, перед закрывающей фигурной скобкой нужна точка с запятой.