如何解决Shell脚本中的错误:“read:非法选项-t”?

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

我在终端中输入了上述代码,但出现了错误信息"read: Illegal option -t"。

我没有收到任何错误信息。在 GNU bash, Version 4.2.37(1)-release (x86_64-pc-linux-gnu) 下运行良好。 - baam
我在Ubuntu 12.10 32位电脑上遇到了这个错误。 - Utkarsh Parekh
检查您正在使用的Bash版本:echo $BASH_VERSION - cdarke
3个回答

6

Bash 支持 -t,因此似乎您正在尝试使用 sh 或其他一些 shell 来执行它,这很奇怪,因为您已经有了正确的 shebang。

请确保使用 ./scriptpath_to_script/script 运行它。如果您只是在终端中运行它,请先启动 bash


3

我曾经遇到同样的问题,后来发现我使用的是#!/bin/sh而不是#!/bin/bash。更改了shebang之后,问题得到了解决。


0

bash支持自版本bash-2.04(请参见变更日志)的read内置选项-t,因此您可能使用的是旧版本的bash(≤ 2.03),或者在您的脚本下没有真正运行bash

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接