У меня проблемы с написанием простого Bash сценария, который проверяет, является ли входной аргумент допустимым Git commit ha sh, что для меня означает, что это либо "HEAD", либо 7-символьный alphanumeri c строка Пока у меня есть сценарий 'deploy. sh':
#! /usr/bin/env bash
GIT_COMMIT=$1
if [[ "$GIT_COMMIT" != "HEAD" && ! "$GIT_COMMIT" =~ [^a-zA-Z0-9] ]]
then
printf "Error! Not a valid Git commit hash.\n"
exit 1
else
printf "Git commit hash is valid.\n"
exit 0
fi
Они должны быть действительными:
./deploy.sh HEAD
./deploy.sh a1b2c3d
./deploy.sh BBc8c4e
./deploy.sh 1234d8
Подобные вещи будут недействительными:
./deploy.sh a1b2c3#
./deploy.sh foobarbaz