如何在shell脚本中解决此错误:“read:Illegal option -t”?

时间:2013-08-19 07:56:26

标签: bash shell ubuntu

#!/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”。

3 个答案:

答案 0 :(得分:4)

Bash支持-t,所以看起来你正试图用sh或其他一些shell执行它,这很奇怪,因为你有正确的shebang。

确保使用./scriptpath_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