shell 如何判斷使用者從鍵盤輸入的變數是否為數字

2021-09-20 23:11:16 字數 1036 閱讀 4034

在bash shell當中其實是沒有直接的命令去判斷變數是否為乙個純數字的,那麼我們就是用間接的方法:

問題描述:

read -t 30 -p "please a number: " num

使用read命令接受使用者從鍵盤輸入乙個變數,儲存在變數num當中,有時候使用者瞎輸入一通,或者不輸入,這對指令碼的執行會有影響,顧提前判斷一下,較好也是必要的,那麼怎麼判斷呢?

方法一:

將num變數做進一步處理:

string=`echo $|sed 'ss^.*[0-9]$ss'` 將$交給sed命令處理一下,以任意數字開頭任意數字結尾的替換成空,再針對替換後的結果做處理。即

$ 為空則$為純數字,否則不是純數字...

例項演示:

執行如下:

方法二:也是推薦的一種 

將$匹配成數字模式 即=~^[0-9]+$

例項演示:

執行結果:

從鍵盤判斷電腦主人

1.w嚴重磨損 原因 fifa的加速鍵是w。分析 此人是個fifa高手。這種人在看球時左手中指會不自覺地狂點 踢球時會抱怨說 又按錯鍵了 跑步時會默念 w w w 2.alt s或ctrl enter磨損 原因 這兩個組合都是oicq的傳送訊息。分析 此人是qq狂,具備以一當十的能力。這種人會把別人...

不指定數列長度,從檔案中讀入數列和從鍵盤輸入數列

include define maxn 100 開乙個大陣列 intmain 這樣的輸入方式起始還是有點問題的,應該用字串處理比較方便!include define maxn 100 開乙個大陣列 intmain while getchar n 以換行符作為輸入的結束 或者 一行字元中空格可以隨意 ...

windows判斷使用者是否在使用鍵盤滑鼠的API

剛剛看 程式設計之美 1.10節,其中提了乙個問題 windows是通過什麼api了解使用者是否在使用滑鼠或鍵盤的?有兩個函式可以實現這個功能,它們都包含在標頭檔案windows.h中。1.bool getinputstate void 函式功能 該函式確定在當前執行緒的訊息佇列中是否有要處理的滑鼠...