Bash
檢查輸入數字是否為整數
我正在嘗試檢查輸入是否為整數,並且我已經檢查了一百次,但沒有看到其中的錯誤。唉,它不起作用,它會觸發所有輸入(數字/字母)的 if 語句
read scale if ! [[ "$scale" =~ "^[0-9]+$" ]] then echo "Sorry integers only" fi
我玩過這些報價,但要麼錯過了它,要麼什麼也沒做。我做錯了什麼?有沒有更簡單的方法來測試輸入是否只是一個整數?
刪除引號
if ! [[ "$scale" =~ ^[0-9]+$ ]] then echo "Sorry integers only" fi
使用test命令
-eq
的操作符:read scale if ! [ "$scale" -eq "$scale" ] 2> /dev/null then echo "Sorry integers only" fi
它不僅適用於
bash
任何 POSIX shell。來自 POSIX測試文件:n1 -eq n2 True if the integers n1 and n2 are algebraically equal; otherwise, false.