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

4

3 回答 3

5

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

确保使用./scriptor运行它path_to_script/script。如果你只是在终端中运行它,首先启动bash.

于 2013-08-19T12:18:08.643 回答
3

我遇到了同样的问题,然后我发现我使用#!/bin/sh的是#!/bin/bash. 更改 shebang 后,一切都按预期工作。

于 2020-06-11T19:53:09.947 回答
0

bash支持自版本以来的内置-t选项(请参阅ChangeLog),因此您使用的是(<= ) 的旧版本,或者没有真正在.readbash-2.04bash2.03bash

运行bash --version以检查版本并仔细检查您的 shebang#!/bin/bash在您的脚本中是否真的看起来像。

于 2013-08-19T12:40:19.290 回答