我正在尝试从shell脚本(而不是bash脚本)中的stdin读取单个字符。
我有一个包含以下内容的脚本:
#!/bin/sh
…
char=$(/bin/bash -c 'read -s -n1 key; echo "$key"')
…
这行得通(假设已安装bash),但是拥有该行代码有点不对。
是否有更好的便携式方法?
它应该可以跨平台运行,但是即使使用我在其上测试过的几个平台(debian,maemo,cygwin,fedora),我也无法找到一种无需安装bash并仅调用bash实例的方法。阅读一个按键。
我也尝试了char="$(dd bs=1 count=1)"
,但是dd仅在换行符/ EOF之后返回/退出。
重复
此question的答案可以解决我的问题。
这可能不是完全相同的重复项,因为: