这是在安装开始时执行的初始脚本。它将捕获用户输入,然后将其写入另一个调用变量的bash脚本。然而,它的效果很好,我想在每个问题的确认中添加。
用户输入电子邮件之后,我希望它能回显他们输入的内容,以确认是否正确,是或否。如果是,则将其写入另一个脚本,然后继续下一个问题。如果不循环回到语句的开头,那么他们可以纠正答案。一旦完成,我想回应结果。
如果有人可以提供一些很棒的指示。我正在查看这些示例In Bash, how to add "Are you sure [Y/n]" to any command or alias?
#!/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
答案 0 :(得分:3)
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
注意:
local
声明具有函数范围的变量。
declare
相同的参数 - 声明ans
变量为大写。while :; do
- :
命令基本上是一个返回成功的无操作,所以这是一个无限循环。
${ans:0:1}
从长度为1的第零个字符(第一个字符)开始提取子字符串