Bash 寫 Shell Script 遇到想要輸入值,然後此值要「判斷格式」是否輸入正確,要怎麼做呢?
Bash 使用 Regex 判斷 輸入格式 是否正確
- $ input="4.1.0-33"
- $ re='^[0-9]+.[0-9]+.[0-9]+-[0-9]+$' # 註:Bash \d 沒有作用,所以還是 [0-9] 寫一寫
- $ [[ $input =~ $re ]]
- $ echo $? # 格式正確會是 0,錯誤是 1
- 0
- $ input="4.1.x-33"
- $ [[ $input =~ $re ]]
- $ echo $?
- 1
範例程式
#!/bin/bash
echo -n "Enter code: "
read -r input
re='^[0-9]+\.[0-9]+\.[0-9]+-[0-9]+
if ! [[ $input =~ $re ]]; then
echo "輸入錯誤"
else
echo "輸入正確"
fi