Bash检查有效的Git提交哈希?

时间:2020-02-04 01:56:43

标签: bash

我在编写一个简单的Bash脚本时遇到麻烦,该脚本将检查输入参数是否为有效的Git提交哈希,这对我来说意味着它是“ HEAD”或7个字符的字母数字字符串。到目前为止,我有这个'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 :(得分:0)

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

这似乎适用于上述用例,但是我不确定我是否正确理解了要求。