Ich habe das folgende Skript geschrieben. Es wird später in einem Erstellungsprozess verwendet. Mein Ziel ist es zu entscheiden, ob es sich um eine Vorabversion oder eine Veröffentlichung handelt. Um dies zu archivieren, vergleiche ich $ release mit einem RegEx. Wenn mein RegEx übereinstimmt, handelt es sich um eine Vorabversion, wenn nicht, um eine Veröffentlichung.
#/bin/bash
release="1.9.2-alpha1"
echo "$release"
if [[ "$release" =~ \d+\.\d+\.\d+[-]+.* ]];then
echo "Pre"
else
echo "Release"
fi
Aber als Ergebnis habe ich immer folgendes:
~$ bash releasescript.sh
1.9.2-alpha1
Release
Ausführung:
Ubuntu 18.04.1 LTS
Ich habe diesen Editor verwendet , um meine RegEx zu testen. Ich stecke mindestens 6 Stunden fest, daher würde ich mich über Hilfe sehr freuen.
quelle
shellcheck
haben, wird die Warnung "SC1001: Dies \ d wird in diesem Zusammenhang ein reguläres 'd' sein." Angezeigt, was sehr hilfreich ist. Andere Antworten .LANG=C