簡體   English   中英

Shell腳本和用戶輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM