前端之家收集整理的这篇文章主要介绍了
如何判断我的程序是否被管道传输到另一个(Perl),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
“ls”在
输出输出时的行为不同:
> ls ???
bar foo
> ls ??? | cat
bar
foo
它如何知道,我将如何在Perl中执行此操作?
在Perl中,-t
文件测试运算符指示
文件句柄
(
包括STDIN)连接到终端.
还有-p测试运算符来指示文件句柄
附在管道上.
$perl -e 'printf "term:%d,pipe:%d\n",-t STDIN,-p STDIN'
term:1,pipe:0
$perl -e 'printf "term:%d,-p STDIN' < /tmp/foo
term:0,pipe:0
$echo foo | perl -e 'printf "term:%d,-p STDIN'
term:0,pipe:1
文件测试运算符文档在perldoc -f -X
.
原文链接:https://www.f2er.com/Perl/172488.html