/ dev / stdin有输入吗?

时间:2011-08-18 21:48:10

标签: linux bash unix

在Bash中,我想使用/ dev / stdin。与许多命令一样,stdin是可选的。那么,我怎么知道我是否有stdin阅读?如果没有标准输入,则cat /dev/stdin等命令会挂起,等待输入。

这是我的第一次尝试:

#Always says "no stdin"
if test -s /dev/stdin
then 
  echo stdin
else
  echo no stdin
fi

man test => -s FILE存在且大小大于零

我猜设备文件跟不上可用字节。在bash中执行此操作会很好,ssh实现此功能(毫无疑问,使用另一种语言)。

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找Asynchronous IO

使用-t标记尝试read。即使没有要读取的输入,它也会在指定时间后返回。