Perl 关于在程序运行过程中重新开启标准输入的问题
作者: Jim Wang 公众号: 巴博萨船长
摘要:主要讨论问题:如何程序运行的时候已经将标准输入使用”<“符号或者”|“符合在命令行定向为一个文件。
Abstract: The main discussion problem: how to use the standard input “<” symbol or “|” to be directed to a file on the command line when the program is running.
作者: Jim Wang 公众号: 巴博萨船长
问题
遇见问题是,如何程序运行的时候已经将标准输入使用”<“符号或者”|“符合在命令行定向为一个文件。
可是在程序的运行过程中希望从键盘得到输入内容。
因为/dev/tty为当前进程的控制台,STDIN
为当前的标准输入. 如果重定向,例如:
1 | perl script.pl <myfile.txt |
STDIN
被指向 myfile.txt
, 但是 /dev/tty
仍然来自于控制终端。所有的Unix都是这样,不单单是指这个perl。
解决方案
1 | #!/usr/bin/perl -w |
测试:
1 | $ echo foo | ./stdin |
发现标准输入重新指向键盘。问题解决。祝君好运。
才疏学浅,欢迎交流提意见彼此提高。需要声明一下51cto博客作者zuiwuxin就是作者本人,所以不存在版权问题。以后该博客将作为个人文章的主要发布地。
版权声明:
文章首发于 Jim Wang's blog , 转载文章请务必以超链接形式标明文章出处,作者信息及本版权声明。
文章首发于 Jim Wang's blog , 转载文章请务必以超链接形式标明文章出处,作者信息及本版权声明。