#!/bin/bash
echo -n "Hurry up and type something! > "
if read -t 10 response ; then
echo "Greate, you made it in time!"
else
echo "sorry, you are too slow!"
fi
我在终端中输入了上述代码,但出现了错误信息"read: Illegal option -t"。
Bash 支持 -t
,因此似乎您正在尝试使用 sh
或其他一些 shell 来执行它,这很奇怪,因为您已经有了正确的 shebang。
请确保使用 ./script
或 path_to_script/script
运行它。如果您只是在终端中运行它,请先启动 bash
。
我曾经遇到同样的问题,后来发现我使用的是#!/bin/sh
而不是#!/bin/bash
。更改了shebang之后,问题得到了解决。
bash
支持自版本bash-2.04
(请参见变更日志)的read
内置选项-t
,因此您可能使用的是旧版本的bash
(≤ 2.03
),或者在您的脚本下没有真正运行bash
。
运行bash --version
检查版本,并仔细检查您的脚本中是否真的看起来像是#!/bin/bash
。
GNU bash, Version 4.2.37(1)-release (x86_64-pc-linux-gnu)
下运行良好。 - baamecho $BASH_VERSION
- cdarke