當編寫shell指令碼時,總是不可避免的要與外界進行互動。
通過 read -p "請輸入:" input 指令,可以實現由鍵盤到指令碼的互動。
但是由輸入法進行輸入的時候,不可避免會產生一些特殊字元,如果一起輸入指令碼,會造成指令碼的不穩定,因此需要對從鍵盤輸入
的字元進行校驗。
path=`pwd`while true
doecho " 請從鍵盤輸入名稱"
echo " 名稱只能由中文、英文、數字組成"
read -p " name: " name
if [ -e $/name.txt ]; then
rm -rf $/name.txt
fiecho "$name" >> $/name.txt
# 通過perl 去除中文
perl -pi -e 's/[\x80-\xff]//g' $/name.txt
# 通過sed 去除英文和數字
filter_input=`cat $/name.txt | sed 's/[0-9a-za-z]//g'`
if [ ! -z $filter_input ]; then
echo " 您輸入的name: $name 不符合格式要求,請重新輸入"
else
break
fidone
嘗試通過sed識別中文失敗後,通過perl 來識別中文。
perl中漢字採用gbk編碼,可以正常進行識別。
shell接受鍵盤輸入引數
root localhost read 選項 變數名 選項 a 後跟乙個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。p 提示資訊 在等待read輸入時,輸出提示資訊 t 秒數 read命令會一直等待使用者輸入,使用此選項可以指定等待時間 n 數字 read命令只接受指定的字元數...
rust 從鍵盤輸入資料
直接上 吧!use std io fn main guess 很有意思,rust借鑑了很多函式式程式設計的思想,前幾年學過haskell,現在感到有些面熟。下面這個命令,沒有用c 慣用的建構函式,而是使用了乙個函式,返回乙個類的例項。let mut guess string new rust的編譯機...
C 從鍵盤輸入的方法
c 最基本的常用的輸入方式 包含標頭檔案 include 注意 不能接受空格和回車 int main 1 scanf 函式 包含標頭檔案 include scanf函式一般格式為scanf s st 但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串都是...