📜  用于标准输入的 bash - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:11:17.265000             🧑  作者: Mango

用于标准输入的 bash - Shell-Bash

简介

Bash 是一个 Unix shell 和命令语言,是许多 Unix 系统默认的 shell。Bash 由布赖恩·福克斯创建,第一版发布于 1989 年。Bash 适用于 GNU/Linux、macOS、FreeBSD 和 Windows Subsystem for Linux 等操作系统。

本文将重点介绍 Bash 在标准输入中的应用,并且提供一些实用技巧。

用法

Bash 读取标准输入的方法非常简单,只需要使用 read 命令就可以了。下面是一个例子:

#!/bin/bash
echo "请输入你的名字:"
read name
echo "你好,$name!"

上面的程序要求用户输入名字,然后输出欢迎信息。这个程序可以在终端上执行,也可以将其保存为脚本文件执行。

当我们执行这个程序时,它会等待用户输入名字。用户输入后,按下 Enter 键,程序会打印出欢迎信息。

$ ./hello.sh
请输入你的名字:
John
你好,John!

要退出 read 命令的等待,可以按下 Ctrl + D。这样程序会继续执行后面的命令。

实用技巧
读取多个输入

如果需要读取多个输入,可以使用 read 命令多次。下面是一个例子,在这个例子中我们需要读取用户名和密码:

#!/bin/bash
echo "请输入你的用户名:"
read username
echo "请输入你的密码:"
read -s password
echo "你的用户名是 $username,密码是 $password。"

上面的程序使用了 -s 参数来隐藏输入的密码。

使用默认值

如果用户没有输入任何值,我们可以使用默认值。可以通过设置变量的默认值来实现。下面是一个例子:

#!/bin/bash
echo "请输入你的名字(默认是 Alex):"
read -r name
name=${name:-Alex}
echo "你好,$name!"

上面的程序将变量 $name 的默认值设置为 Alex

使用超时

如果需要在一定时间内等待用户输入,可以设置超时时间。可以使用 -t 参数来设置超时时间。下面是一个例子:

#!/bin/bash
echo "请输入你的名字:"
if read -t 5 name; then
  echo "你好,$name!"
else
  echo "时间到了,程序退出。"
fi

上面的程序使用了 -t 参数来等待 5 秒,如果在 5 秒内用户输入了名字,程序就会打印欢迎信息;否则程序会打印通知,并退出。

总结

读取标准输入是 Bash 编程中常用和基础的功能之一。上面介绍了 Bash 读取标准输入的使用方法和一些实用技巧。开发者在编写 Bash 脚本时可以使用这些技巧提高效率和功能。