📅  最后修改于: 2023-12-03 14:48:43.365000             🧑  作者: Mango
在 Shell/Bash 编程中,我们经常需要等待用户输入来继续执行脚本。在 Zsh 中,我们可以使用 read
命令来实现这一功能。
read
read
命令可以从标准输入读取一行文本,并将其保存到指定的变量中。例如,以下脚本将提示用户输入名字并将其保存到 $name
变量中:
#!/usr/bin/env zsh
echo "What is your name?"
read name
echo "Hello, $name!"
运行该脚本将输出:
What is your name?
John Doe
Hello, John Doe!
通常,我们希望在读取用户输入之前向用户提供一些提示信息。为此,我们可以在 read
命令中使用 -p
选项。例如:
#!/usr/bin/env zsh
read -p "What is your name? " name
echo "Hello, $name!"
运行该脚本将输出:
What is your name? John Doe
Hello, John Doe!
有时我们需要读取密码而不让其显示在终端上。为此,我们可以使用 read
命令中的 -s
选项。例如:
#!/usr/bin/env zsh
read -s -p "Enter your password: " password
echo "Your password is $password"
运行该脚本将显示以下提示并等待用户输入密码:
Enter your password:
在用户输入密码后,该脚本将输出:
Your password is securepassword
有时,我们需要在一定时间内等待用户输入。为此,我们可以在 read
命令中使用 -t
选项。例如:
#!/usr/bin/env zsh
if read -t 5 -p "Enter your name in 5 seconds: " name; then
echo "Hello, $name!"
else
echo "Time out!"
fi
运行该脚本将显示以下提示并等待用户输入:
Enter your name in 5 seconds:
如果用户在 5 秒内输入了名称,则该脚本将输出:
Hello, John Doe!
否则,该脚本将输出:
Time out!
read
命令是 Zsh 编程中等待用户输入的常用工具。我们可以使用 -p
选项在读取用户输入前提供提示信息,使用 -s
选项隐藏密码,使用 -t
选项设置超时。这些选项使得 read
命令非常灵活,适用于许多常见的编程场景。