“读取”单个键会出错

Dav*_*jad 5 bash

这个简单的脚本应该读一个字母:

#!/bin/bash
read -n 1 key
echo $key
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误

read: Illegal option -n
Run Code Online (Sandbox Code Playgroud)

手工执行的read -n 1 key作品虽然。

Gil*_*il' 9

-n选项read是一个bash的扩展,在其他一些炮弹没有找到。如果出现错误read: Illegal option -n,则表示您没有在 bash 下运行脚本。您很可能在/bin/sh,下运行脚本,并且/bin/sh不是 bash 而是 dash (错误消息是一个 dash 产生的)。

要在 bash 下运行脚本,请以shebang行开头#!/bin/bash,使脚本文件可执行,并按名称调用它。由于您有一个 shebang 行,问题可能是您运行. /path/to/script而不是/path/to/script/bin/sh.