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