因此I have this script会改变控制台中文本的颜色。问题是虽然它接受来自STDIN和-s
参数的字符串,但它偶尔会在结果中省略STDIN。我只注意到这一点时,我管脚本本身(见下文)STDIN只能随机工作[PHP CLI]
php color.php -s Hello, -c green -S underline | php color.php -s " Bob" -c red -S bold
上面的bash脚本会始终显示“鲍勃”,但只会显示“你好”,在一系列的尝试了几次, 没有更改脚本的任何部分。据我所知,它是否包括它是非常随机的,没有明显的模式。
所以我的问题是,我该如何防止这种情况?
嗯,而不是读取STDIN无阻塞(数据可能还没到达那里),你可以possily读它阻塞,输入不一个tty:'if(!posix_isatty(STDIN)){$ input = file_get_contents('php:// stdin');}' – Wrikken 2013-05-01 18:39:43
嗯,我并不期待快速得到答案。完美的工作,谢谢! – 2013-05-01 18:47:03
Aight,我会将其升级为答案。 – Wrikken 2013-05-01 18:51:32