我可以从bash脚本中测试开放的stdin流吗?

我可以从bash脚本中测试开放的stdin流吗?,bash,io,stream,Bash,Io,Stream,假设我想将脚本的所有输入写入日志文件、命令行和标准中。因此,如果有人将文本传输到我的脚本中,我也想将其写入日志中,但是如果在没有输入的情况下调用我(例如,从登录shell),如果我尝试cat或readstandard in,等待用户键入内容,脚本将被阻止 我可以测试一个开放的输入流吗?或者只捕获中的所有标准,当且仅当中有标准时?您可以使用命令测试上的-t选项 从那个男人那里: -在终端上打开FD文件描述符FD 谢谢似乎做了我想做的,虽然输出对我来说似乎是相反的。不,事实上你第一次是对的。我只是认

假设我想将脚本的所有输入写入日志文件、命令行和标准中。因此,如果有人将文本传输到我的脚本中,我也想将其写入日志中,但是如果在没有输入的情况下调用我(例如,从登录shell),如果我尝试
cat
read
standard in,等待用户键入内容,脚本将被阻止


我可以测试一个开放的输入流吗?或者只捕获中的所有标准,当且仅当中有标准时?

您可以使用命令
测试
上的
-t
选项

从那个男人那里:

-在终端上打开FD文件描述符FD


谢谢似乎做了我想做的,虽然输出对我来说似乎是相反的。不,事实上你第一次是对的。我只是认为
test-t
的语义都是反向的。
if [ -t 0 ]; then
  echo "Pipe not open"
else
  echo "Pipe available"
fi