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