Зауважте, що для PIPEбудь-якої команди чи послідовності команд, тоді:
if PIPE ; then
# do one thing if PIPE returned with zero status ($?=0)
else
# do another thing if PIPE returned with non-zero status ($?!=0), e.g. error
fi
Для запису, [ expr ]чи є оболонка, побудована † скороченням для test expr.
Оскільки grepповернення зі статусом 0 у разі збігу та ненульовий статус у разі невідповідності, ви можете використовувати:
if grep -lq '^MYSQL_ROLE=master' ; then
# do one thing
else
# do another thing
fi
Зауважте, використання -lякого піклується лише про файл, що має принаймні одне збіг (так що він grepповертається, як тільки знайде одну відповідність, без зайвого продовження розбору вхідного файлу.)
† на деяких платформах [ expr ]не є вбудованим, але фактично виконуваним /bin/[(чия останнім аргументом буде ]), тому [ expr ]повинні містити пробілу навколо квадратних дужок, і чому він повинен слідувати одному зі списку команд роздільників ( ;, &&, ||, |, &, новий рядок)