因此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