认识Bash脚本中的交互式输入335


在编写Bash脚本时,您可能需要从用户那里获取输入,例如名称、数字或确认。使用交互式输入,您可以让脚本根据用户的响应动态调整其行为。本文将指导您在Bash脚本中处理交互式输入。

读取单个字符

要读取单个字符而不显示它,请使用read -n 1命令,后跟变量名来存储输入。例如:```bash
#!/bin/bash
read -n 1 answer
echo "You entered: $answer"
```

读取一行的文本

要读取一行的文本,请使用read命令,后跟变量名来存储输入。例如:```bash
#!/bin/bash
read name
echo "Hello, $name!"
```

使用提示读取输入

要显示提示并获取输入,请使用-p选项。例如:```bash
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"
```

使用默认值

如果您希望在用户未输入的情况下使用默认值,请使用-d选项。例如:```bash
#!/bin/bash
read -p "Enter your age (default 25): " age
age=${age:-25}
echo "Your age is: $age"
```

验证输入

要验证输入,请使用case语句或正则表达式。例如,如果您只想接受与特定模式匹配的输入,可以使用以下代码:```bash
#!/bin/bash
while true; do
read -p "Enter a valid email address: " email
if [[ $email =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then
break
else
echo "Invalid email address. Please try again."
fi
done
```

处理多行输入

要读取多行输入,请使用heredoc语法。您可以在heredoc部分中输入文本,并在结尾使用EOF标记(例如,EOF)。例如:```bash
#!/bin/bash
read -d '' message

2024-12-20


上一篇:bash 脚本自身名字和路径

下一篇:linux bash脚本的参数个数