Bash проверить на действительность Git коммит га sh? - PullRequest
0 голосов
/ 04 февраля 2020

У меня проблемы с написанием простого 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

1 Ответ

0 голосов
/ 04 февраля 2020
GIT_COMMIT=$1
if [[ "$GIT_COMMIT" != "HEAD" && ! "$GIT_COMMIT" =~ ^[a-zA-Z0-9]{1,7}$ ]]
then
  printf "Error!  Not a valid Git commit hash.\n"
  exit 1
else
  printf "Git commit hash is valid.\n"
  exit 0
fi

Это похоже на вышеупомянутый вариант использования, однако я не совсем уверен, правильно ли я понял запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...