Как убить следующие команды при выполнении условного цикла? Мое состояние такое, как показано ниже, и я хочу выйти из всего сценария, если он показывает эхо «не найдено», так что все, что приходит после этого цикла, не будет работать. Пожалуйста помогите. Я новичок в unix. Спасибо.
if grep -q 'pattern' 'file';
then
echo "found"
else
echo "not found"
fi
Это можно сделать с помощью команды exit
. Из man bash
:
exit [n]
Заставить оболочку выйти со статусом n. Если n опущено, статус выхода соответствует статусу последней выполненной команды. Ловушка на EXIT выполняется до завершения работы оболочки.
if grep -q 'pattern' '/path/to/file'
then
echo "found"
else
echo "not found"
exit
fi
Примечание: Точка с запятой в конце первой строки не нужна, если только вы не размещаете дополнительные команды в той же строке, например,
if grep -q 'pattern' '/path/to/file'; then
echo "found"
else
echo "not found"
exit
fi