Shell脚本读取问题

Shell脚本读取问题

我正在尝试创建一个带有read命令的 shell 脚本,这样当我运行该脚本时,它会向用户询问是或否的问题。如果用户输入yes,脚本将继续,如果她输入,no脚本将停止。

read以这种方式使用命令的语法是什么?

我正在运行 Ubuntu 13.04。

答案1

该命令可能会为您提供更好的服务select,它允许用户选择向他们呈现的选项。

#!/usr/bin/env bash

echo "Are you sure?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) break;;
        No ) exit;;
    esac
done

# Add whatever you want to do if the user answered "yes" here

如果用户回答“否”,脚本将退出,而不会执行脚本下面的代码。

使用的唯一缺点select是选项是使用数字选择的。因此,由于我们有两个选项,用户无法输入“是”,他们必须输入“1”等。

答案2

一次性解决所有 bash 编程问题:http://www.tldp.org/guides.html- 找到“高级 Bash 脚本指南”。

它包含很多例子,非常容易阅读;-) - 我在使用 bash 时有时会遇到一些停顿,因此我把它当作一本字典。

另外:bash 内置:s like read 有帮助可用,如

帮助阅读

然后,简单回答你的问题:

echo -n "Y/N - 是或否:" && read -N 1 ans && echo -e "\r$(tput el)您说的是$ans。"

tput-从 terminfo 数据库打印项目。更多信息请参见“man terminfo”。

相关内容