#!/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
我在终端上写了上面的代码并得到错误“读:非法选项-t”。
答案 0 :(得分:4)
Bash支持-t
,所以看起来你正试图用sh
或其他一些shell执行它,这很奇怪,因为你有正确的shebang。
确保使用./script
或path_to_script/script
运行它。如果您只是在终端中运行它,请先启动bash
。
答案 1 :(得分:2)
我遇到了同样的问题,然后我发现我使用的是#!/bin/sh
而不是#!/bin/bash
。更改shebang后,一切都按预期进行。
答案 2 :(得分:0)
bash
支持自版本-t
以来read
内置的bash-2.04
选项(请参阅ChangeLog),因此您要么使用古老版本的{ {1}}(< = bash
)或者没有真正在2.03
下运行您的脚本。
运行bash
检查版本并仔细检查脚本中的shebang是否真的像bash --version
。