如果答案正确则提示,然后在Bash中验证
这是安装开始时执行的初始脚本。它将捕获用户输入,然后将其写入调用变量的另一个bash脚本。它工作得很好,但是,我想为每个问题添加一个确认 例如,在用户输入电子邮件后,我希望它能回显他们键入的内容,用是或否确认其正确性。如果是,则将其写入另一个脚本并继续下一个问题。如果没有,则返回语句的开头,以便他们更正答案。一旦完成,我想重复一下结果 如果有人能提供一些建议,那就太好了。我在看这些例子 注:如果答案正确则提示,然后在Bash中验证,bash,unix,Bash,Unix,这是安装开始时执行的初始脚本。它将捕获用户输入,然后将其写入调用变量的另一个bash脚本。它工作得很好,但是,我想为每个问题添加一个确认 例如,在用户输入电子邮件后,我希望它能回显他们键入的内容,用是或否确认其正确性。如果是,则将其写入另一个脚本并继续下一个问题。如果没有,则返回语句的开头,以便他们更正答案。一旦完成,我想重复一下结果 如果有人能提供一些建议,那就太好了。我在看这些例子 注: local声明具有函数作用域的变量。 它采用与declare相同的参数——将ans变量声明为大写
声明具有函数作用域的变量。local
- 它采用与
相同的参数——将declare
变量声明为大写ans
- 它采用与
--:命令基本上是返回成功的no op,因此这是一个无限循环。while:;do
从长度为1的第0个字符(第一个字符)开始提取子字符串${ans:0:1}
声明具有函数作用域的变量。local
- 它采用与
相同的参数——将declare
变量声明为大写ans
- 它采用与
--:命令基本上是返回成功的no op,因此这是一个无限循环。while:;do
从长度为1的第0个字符(第一个字符)开始提取子字符串${ans:0:1}
声明具有函数作用域的变量。local
- 它采用与
相同的参数——将declare
变量声明为大写ans
- 它采用与
--:命令基本上是返回成功的no op,因此这是一个无限循环。while:;do
从长度为1的第0个字符(第一个字符)开始提取子字符串${ans:0:1}
声明具有函数作用域的变量。local
- 它采用与
相同的参数——将declare
变量声明为大写ans
- 它采用与
--:命令基本上是返回成功的no op,因此这是一个无限循环。while:;do
从长度为1的第0个字符(第一个字符)开始提取子字符串${ans:0:1}
local-u
/declare-u
需要bash4+;早期版本可以只使用local
,和[[$ans=~^[yY]]]]
作为条件。非常感谢您,这是我所需要的干净和最小的。不要拖出这段代码,但您愿意提供此代码的简要解释,以便我可以学习吗?+1。注意,local-u
/declare-u
需要bash4+;早期版本可以只使用local
,和[[$ans=~^[yY]]]]
作为条件。非常感谢您,这是我所需要的干净和最小的。不要拖出这段代码,但您愿意提供此代码的简要解释,以便我可以学习吗?+1。注意,local-u
/declare-u
需要bash4+;早期版本可以只使用local
,和[[$ans=~^[yY]]]]
作为条件。非常感谢您,这是我所需要的干净和最小的。不要拖出这段代码,但您愿意提供此代码的简要解释,以便我可以学习吗?+1。注意,local-u
/declare-u
需要bash4+;早期版本可以仅使用local
和[[[$ans=~^[yY]]]]
作为条件。
#!/bin/bash
read -p "Who is the primary Email recipient? : " TO
echo "TO=$TO" >> /var/tmp/ProcMon
read -p "What is the server hostname : " FROM
echo "FROM=$FROM" >> /var/tmp/ProcMon
function prompt_and_confirm {
local var=$1
local prompt=$2
local value
local -u ans
while :; do
read -p "$prompt" value
read -p "You entered: '$value': confirm [y/n] " ans
[[ ${ans:0:1} == "Y" ]] && break
done
echo "$var=$value"
}
prompt_and_confirm TO "Who is the primary Email recipient? : " >> /var/tmp/ProcMon
prompt_and_confirm FROM "What is the server hostname? : " >> /var/tmp/ProcMon