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