我在编写一个简单的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
答案 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
这似乎适用于上述用例,但是我不确定我是否正确理解了要求。