假设我想将脚本的所有输入写入日志文件、命令行和标准中。因此,如果有人将文本通过管道发送到我的脚本,我也想将其写入日志,但如果我在没有输入的情况下被调用(例如,从登录shell),如果我尝试在中使用cat
或read
标准,脚本将被阻止,等待用户键入内容。
我可以以某种方式测试开放输入流吗?或者只是捕获所有的标准in,如果并且仅当存在标准in?
您可以在命令test
上使用-t
选项。
发件人:
-t FD文件描述符FD在终端上打开
if [ -t 0 ]; then
echo "Pipe not open"
else
echo "Pipe available"
fi