Про условные операторы https://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
Отладка:
bash -xv script.sh 2>2
Выход при первой же ошибке:
set -e
или
bash -е script.sh
Цветной вывод (https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux):
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "I ${RED}love${NC} Stack Overflow"
Проверка на соответствие регулярному выражению. В данном случае дата из 8 цифр
if ! [[ "$VERSION_DATE" =~ ^[0-9]{8}$ ]]
then
echo "ERROR: The name of the rootfs archive contains an incorrect date"
exit 1
fi
Получение имени файла по символической ссылке
[ -L $ROOTFS_ARCHIVE ] && ROOTFS_ARCHIVE=`realpath $ROOTFS_ARCHIVE`
Бесконечный цикл со счетчиком до ошибки при вызове a.out
for ((i=1;;i++)); do echo -n "$i: "; ./a.out||break;done