Command-Line

讀取值驗證

  • January 14, 2018

有沒有辦法驗證或確認使用者寫了它的意思read

  • 例如,使用者打算寫“Hello world!” 但誤寫了“Hello world@”。
  • 這與電子郵件/電話欄位的聯繫表單驗證非常相似。

有沒有辦法在閱讀時提示使用者“請重新輸入輸入”?

我在man read.


注意:輸入是密碼,所以我不想列印或將其與已經存在的字元串進行比較。

有了bash外殼,你總能做到

FOO=a
BAR=b
prompt="Please enter value twice for validation"
while [[ "$FOO" != "$BAR" ]]; do
   echo -e $prompt
   read -s -p "Enter value: " FOO
   read -s -p "Retype to validate: " BAR
   prompt="\nUups, please try again"
done
unset -v BAR
# do whatever you need to do with FOO
unset -v FOO

read使用的選項:

  • -s靜音模式。如果輸入來自終端,則不會回顯字元。
  • -p prompt在嘗試讀取任何輸入之前,在標準錯誤上顯示提示,不帶尾隨換行符。

引用自:https://unix.stackexchange.com/questions/416770