Shell 脚本实现接收用户两次输入的参数,并进行一系列校验,最终执行程序逻辑,可以按照以下步骤进行编写。具体功能包括:提示用户输入两个参数,去除空格、校验是否一致,确认继续,最后执行并输出结果。
Shell实现:
#!/bin/bash
# 函数:去除首尾空格
trim() {
echo "$1" | sed 's/^[ \t]*//;s/[ \t]*$//'
}
# 函数:读取参数并校验一致性
get_input() {
while true; do
# 提示用户输入第一个参数
read -p "请输入参数1: " param1
param1=$(trim "$param1") # 去除首尾空格
# 判断第一个参数是否为空
if [ -z "$param1" ]; then
echo "参数1不能为空,请重新输入。"
continue
fi
# 提示用户输入第二个参数
read -p "请再次输入参数2以确认: " param2
param2=$(trim "$param2") # 去除首尾空格
# 判断第二个参数是否为空
if [ -z "$param2" ]; then
echo "参数2不能为空,请重新输入。"
continue
fi
# 判断两次输入是否一致
if [ "$param1" != "$param2" ]; then
echo "两次输入的参数不一致,请重新输入。"
else
break # 输入一致,跳出循环
fi
done
}
# 函数:确认是否继续
confirm_continue() {
read -p "参数一致,按回车键继续,或按 Ctrl+C 退出。" confirmation
}
# 主程序逻辑
main() {
# 获取输入参数
get_input
# 确认继续
confirm_continue
# 假设执行一些程序逻辑,例如输出参数
echo "执行逻辑,接收的参数为: $param1"
# 这里可以替换为实际的逻辑,例如:
# ./program-logic --param "$param1"
}
# 执行主程序
main
使用:
先赋予执行权限并运行脚本:
chmod +x input_check.sh
./input_check.sh
执行结果:
请输入参数1: abc123
请再次输入参数2以确认: abc
两次输入的参数不一致,请重新输入。
请输入参数1: abc123
请再次输入参数2以确认: abc123
参数一致,按回车键继续,或按 Ctrl+C 退出。
执行逻辑,接收的参数为: abc123