read
是 Linux Shell 中的一个内置命令,主要用于从标准输入(如键盘)或文件中读取数据,并将内容赋值给变量。它在脚本交互、用户输入处理和文件逐行读取等场景中非常实用。以下是 read
命令的主要用途和示例:
#!/bin/bash
echo "请输入您的名字:"
read name
echo "您好, $name!"
name
,然后输出。read -p "请输入姓名和年龄(用空格分隔):" name age
echo "姓名:$name, 年龄:$age"
-p
选项直接显示提示符(无需额外 echo
)。name
和 age
。read -s -p "请输入密码:" password
echo -e "\n您输入的密码是:***"
-s
选项隐藏输入内容(适用于敏感信息)。read -t 5 -p "5秒内输入内容,否则超时:" input
if [ -z "$input" ]; then
echo "超时未输入!"
fi
-t 5
设置 5 秒超时,若未输入则跳过。while read line; do
echo "行内容:$line"
done < file.txt
file.txt
的内容并处理。IFS="," read -p "输入逗号分隔的数据:" field1 field2
echo "字段1: $field1, 字段2: $field2"
IFS=","
设置逗号为分隔符,输入如 data1,data2
。read -n 5 -p "输入5个字符:" chars
echo -e "\n输入的是:$chars"
-n 5
限制只读取 5 个字符。read -a array -p "输入多个值(空格分隔):"
echo "第一个元素:${array[0]}"
-a
将输入内容保存到数组(如 array=(value1 value2)
)。选项 | 作用 |
---|---|
-p |
显示提示符(如 read -p "提示" var ) |
-s |
隐藏输入内容(如密码) |
-t |
设置超时时间(秒) |
-n |
限制读取的字符数 |
-a |
将输入保存到数组 |
-r |
禁止反斜杠转义(保留原始输入) |
通过灵活组合这些功能,read
可以满足大多数 Shell 脚本中的输入需求。