Shell脚本和用户输入



我正在写一个脚本,并计划让它成为交互式的。这有点像寻宝游戏。脚本基本上是向用户打招呼,并向用户提供如何继续的指示。

这些说明涉及一系列密码(用户输入),这些密码将根据使用的密码显示某些信息。我计划根据日期对其中一个密码使用破解

我将让代码进行评估,但我只是问什么是正确的方法(什么样的循环,以及语法方面的一些帮助。)

#!/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"

有一个单独的文件使用:作为游戏中使用的字段分隔符。我想知道循环请求密码并根据输入的内容执行的正确方法是什么。

我正在寻找一种简单的方法,它可以读取用户输入,并根据它是否与其他文件匹配来执行一组指令(特定于每个密码),一旦输入最后一个密码,它就会完成。我猜while,read,if and或类似的东西。

要将一行用户输入读取到变量$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

相关内容

  • 没有找到相关文章

最新更新