0
得到了一个非常简单的脚本,它基本上检查条码。有两个条形码必须检查,它们在变成变量时不会感到困惑。BASH中的IF语句没有达到预期的效果
基本上第一个条码应该只包含数字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这很好。你仍然需要引用你的正则表达式。也许我会为你编辑你的帖子。 –