2016-08-31 34 views
0

我有2管道過程:2管道過程放緩執行

gnome-terminal -e ./script1 | ./script2.py 

,我使用的「實時」進程(通過我的串口script2.py控制電機)...這工作很好,但在很短的時間後,它放緩很多...

有什麼辦法來「刷新」或跳過一些數據從管道傳遞,以保持我的「實時」儘可能短? (並讓我的電機儘可能快地反應來自我腳本的任何變化1)

非常感謝!

+0

爲什麼gnome-terminal甚至是這個的一部分? – Nick

+0

它只是爲了能夠在這個終端打印一些輸出,並監視發生了什麼...... – Dadep

回答

1

我覺得你很困惑。上述命令將啓動一個新的實例gnome-terminal並在其中運行./script1,並且它還將在原始終端內運行./script2.py。此外,./script2.py的標準輸入將被輸入從gnome-terminal -e ./script1命令的輸出收集的所有數據,而不是./script1。所以你給了./script2.py錯誤的數據。實際上,gnome-terminal通常不會產生任何輸出(實際上,它可能會在其stderr中打印一些內容),所以您沒有給出./script2.py的任何數據。

+0

嗨,感謝您的回答,但我不太明白,所以從script2.py中收到的數據來自哪裏?如果我只是做./script1 | ./script2.py,它會工作?謝謝 ! – Dadep

+0

是的,'./script1 | 。/ script2.py'會導致'。/ script1'的輸出被輸入到'。/ script2.py'中作爲輸入。 – redneb

+0

如果我有script.sh然後做gnome-terminal ./script.sh,並且在這個script.sh中,我該怎麼做@#/ bin/bash cd/home/therightplace; ./script1 | ./script2.py} || {通知發送「不工作」} – Dadep