插件窝 干货文章 学习如何使用Linux read命令及其基本功能

学习如何使用Linux read命令及其基本功能

echo 输入 read bash 681    来源:    2025-04-10

Linux read 命令详解

read 是 Linux shell 中一个内置命令,用于从标准输入或文件描述符中读取一行数据并将其分割后赋值给变量。

基本语法

read [options] [variable_name(s)]

常用功能

1. 基本读取

read var
echo "您输入的是: $var"

2. 读取多个变量

read var1 var2 var3
echo "第一个变量: $var1"
echo "第二个变量: $var2"
echo "第三个变量: $var3"

3. 显示提示信息 (-p)

read -p "请输入您的姓名: " name
echo "您好, $name!"

4. 静默读取(用于密码输入,-s)

read -s -p "请输入密码: " password
echo
echo "密码已接收"

5. 设置超时 (-t)

if read -t 5 -p "请在5秒内输入: " input; then
    echo "您输入了: $input"
else
    echo "输入超时"
fi

6. 限制输入字符数 (-n)

read -n 4 -p "请输入4个字符: " chars
echo
echo "您输入的是: $chars"

7. 使用分隔符 (-d)

read -d ":" -p "输入内容以:结束: " content
echo "内容: $content"

8. 从文件中读取

while read line; do
    echo "行内容: $line"
done < filename.txt

高级用法

1. IFS(内部字段分隔符)控制

IFS=":" read user pass uid gid info home shell < /etc/passwd
echo "用户: $user"
echo "家目录: $home"

2. 读取到数组

read -a array
echo "数组元素: ${array[0]}, ${array[1]}"

3. 处理特殊字符 (-r)

read -r line  # 防止反斜杠转义

实际应用示例

1. 简单的用户交互脚本

#!/bin/bash

read -p "请输入您的名字: " name
read -p "请输入您的年龄: " age

echo "欢迎 $name, 您 $age 岁了!"

2. 密码验证

#!/bin/bash

read -s -p "请输入密码: " pass1
echo
read -s -p "请再次输入密码: " pass2
echo

if [ "$pass1" != "$pass2" ]; then
    echo "密码不匹配!"
    exit 1
fi

echo "密码设置成功"

3. 菜单选择

#!/bin/bash

echo "请选择:"
echo "1) 选项一"
echo "2) 选项二"
echo "3) 选项三"

read -n 1 -p "输入选择 (1-3): " choice
echo

case $choice in
    1) echo "您选择了选项一";;
    2) echo "您选择了选项二";;
    3) echo "您选择了选项三";;
    *) echo "无效选择";;
esac

read 命令是 shell 脚本中用户交互的重要工具,掌握它可以大大增强脚本的交互性和灵活性。