iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 22
0

前言

我們今天要來介紹判斷式,並寫一個腳本來判斷使用者輸入了什麼東西。

判斷式

語法

if_[_判斷式_]
then
  執行這段內容
elif_[_判斷式_]
  then
    執行這段內容
else
	執行這段內容
fi

概念上就是當判斷式if爲真,則執行then 底下的程式碼部分。

如果不爲真,就會跳到 elif 的區塊,再不是的話就會跳到 else 去。

然後上面的_代表空白,在撰寫程式碼時不要真的打出來,這只是提醒要記得留間隔,不然會出錯。

來點扣吧

接下來我們來寫一個判斷使用者輸入的程式,是輸入一般字元(不是數字或是字母),還是特殊字元(%,^,*...)

   #!/bin/bash
   
   echo -n "請輸入資料(限一般字元):"
   read input
   
   chars="$(echo $input | sed -e 's/[^[:alnum:]]//g')"
   
   if [ "$chars" = "$input" ] ; then
     valid=1
  else
    valid=0
  fi
  
  if [ "$valid" = "0" ] ; then
    echo "還敢亂輸入阿"
    exit 1
  else
    echo "你輸入的是有效資料"
  fi

輸入

我們使用read 把使用者的輸入存到 input 變數中。

篩選

接下來把 input 輸出,透過管線指令當成 sed 的輸入,透過 sed 我們把不是數字還有英文字母的字元過濾掉,最後的結果存入變數 chars 中。

判斷

最後來到了判斷的環節,當原本的數入和處理過的輸入不同,就代表包含不合規範的輸入,方法就是設一個變數 valid,如果是 0 就代表不合規範,反之就是合法輸入。


上一篇
[Day 21] 自己的 Shell Script 自己寫 - 參數應用
下一篇
[Day 23] 自己的 Shell Script 自己寫 - 判斷式(2)
系列文
30 天不間斷-資工隨筆大雜燴30

尚未有邦友留言

立即登入留言