#!/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”。
Bash 支持-t
,所以看起来你正在尝试使用sh
其他 shell 来执行它,这很奇怪,因为你有正确的 shebang。
确保使用./script
or运行它path_to_script/script
。如果你只是在终端中运行它,首先启动bash
.
我遇到了同样的问题,然后我发现我使用#!/bin/sh
的是#!/bin/bash
. 更改 shebang 后,一切都按预期工作。
bash
支持自版本以来的内置-t
选项(请参阅ChangeLog),因此您使用的是(<= ) 的旧版本,或者没有真正在.read
bash-2.04
bash
2.03
bash
运行bash --version
以检查版本并仔细检查您的 shebang#!/bin/bash
在您的脚本中是否真的看起来像。