Я работаю в сценарии оболочки, посредством чего я вызываю команду grunt и пытаюсь захватить результат для выполнения других условных операций впоследствии в зависимости от успеха или неудачи команды grunt.

Есть ли способ написать что-то вроде ... (извините, конечно, за '...')

GRUNT_EXIT_CODE=$(grunt ...);
if [[ $GRUNT_EXIT_CODE -eq 0 ]];then echo "Success";else echo "Failure";fi

... чтобы grunt выводил только код выхода?

0
CJHolowatyj 19 Янв 2021 в 17:02

2 ответа

Лучший ответ

@RobC ответил на этот вопрос в своем комментарии к исходному сообщению:

"Рассмотрите возможность назначения специального параметра $? в переменную GRUNT_EXIT_CODE. Например, вместо этого замените первую строку кода на следующую: "

grunt ...;
GRUNT_EXIT_CODE=$?
1
RobC 21 Янв 2021 в 16:25

Если grunt устанавливает правильный код выхода, вы можете просто проверить, что:

if grunt ...; then
  echo "Success"
else
  echo "Failure"
fi

Если вас не интересует вывод команды, вы можете перенаправить stdout и, возможно, stderr в / dev / null:

grunt ... >/dev/null 2>/dev/null
1
andlrc 19 Янв 2021 в 14:06