Получил очень простой скрипт, который в основном проверяет штрих-коды. Есть два штрих-кода, которые необходимо проверить, чтобы их не путали, когда они превращались в переменную.Оператор IF в BASH не делает то, что ожидается
В основном первый штрих-код должен содержать только цифры 0-9, а второй штрих-код должен содержать две буквы, затем некоторые цифры, а затем еще две буквы, такие как AB123456789CD.
Если они сбиты с толку и читаются в неправильном порядке, тогда он воспроизводит звук ошибки. Это то, что я до сих пор, верхний работает, но я не уверен, что это лучшее решение, а нижний не делать то, что я хочу:
echo -e $BLUE"Please scan the first barcode"$ENDCOLOUR
read -p "Barcode: " BARCODE1
if [[ "$BARCODE1" =~ [a-z] ]] ; then
play -q ./error.wav
else
echo -e $BLUE"Please scan the second barcode"$ENDCOLOUR
read -p "Barcode: " BARCODE1
if [[ "$BARCODE2" =~ [a-z0-9] ]] ; then
play -q ./error.wav
else
echo "'$BARCODE1',$BARCODE2'" >> barcodes.csv
fi
fi
Что случилось? И есть ли более оптимальное средство для достижения этого?
ура! Как работает бит? –
Я просто добавил! чтобы отрицать выражения –
@ Aleks-DanielJakimenko Это хорошо. Вам все равно нужно процитировать ваши регулярные выражения. Возможно, я просто отредактирую ваше сообщение для вас. –