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