[英]Shell Script and user input
我正在編寫腳本,並計划進行交互。 這有點像尋寶游戲。 該腳本基本上向用戶打招呼,並向用戶提供有關如何進行操作的說明。
這些說明涉及一系列密碼(用戶輸入),這些密碼將根據使用的密碼顯示某些信息。 我計划根據日期對其中一個密碼使用中斷 。
我將要評估代碼,但我只是問這樣做的正確方法是什么(哪種循環以及有關語法的一些幫助。)
#!/bin/bash
echo "Welcome User"; sleep 2;
echo "Random greeting and intro to the game"
select yn in "Yes" "No"; do
case $yn in
Yes) echo "Are you ready to play?"; break;;
No) echo "Then get ready";;
esac
done
echo "Please enter your first password"
有一個單獨的文件,其使用:
作為要與游戲一起使用的字段分隔符。 我想知道什么是循環詢問密碼並根據輸入內容執行的正確方法。
我正在尋找一種簡單的方法來讀取用戶輸入,並根據它是否與另一個文件匹配來執行一組指令(特定於每個密碼),並且一旦輸入了最后一個密碼,便完成操作。 我猜一會兒,看,如果和或類似的東西。
要在變量$foo
讀取一行用戶輸入,請輸入:
IFS= read -r foo
( IFS=
告訴它沒有字段分隔符,因此它不應該丟棄任何空格; -r
告訴它,反斜杠應視為原義的反斜杠。)
您的循環可能是“永遠”的循環,這意味着它將循環直到遇到break
語句:
while true ; do
...
if ... ; then
...
break # jump out of the loop
fi
...
done
我不知道您的意思是“ [用戶輸入的內容是否與另一個文件匹配” –聽起來另一個文件非常復雜,帶有字段分隔符等,但是您很可能希望將另一個文件讀入內存,將其字段存儲在適當的變量中:
IFS=: read -r field1 field2 field3 < the_other_file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.