2011-08-29 199 views
2

如何將csh腳本的stdin重定向到python腳本的stdin?csh標準輸入到Python標準輸入?

我有一個cgi腳本,我正在寫一個Solaris機器上運行的csh。這個csh腳本是從stdin讀取的python腳本的包裝器(我知道,csh中的腳本很糟糕,但我在這種情況下被迫使用)。

感謝您的幫助! (對於n00b問題抱歉!)

回答

6

test.csh

#!/bin/env csh 
python test.py 

test.py(見this question

#!/bin/env python 
import fileinput 

if __name__ == '__main__': 
    print "Hi. printing stdin" 
    for line in fileinput.input(): 
     print line 

    print "fin" 

然後,標準輸入到test.cshtest.pyas Henning said傳遞。

echo "this is stdin" | csh test.csh 
+0

完美!非常感謝!! – RaytheonLiszt

3

你不需要做任何事情。 從shell(例如csh)開始的命令(例如Python腳本)將默認繼承shell的stdin(和stdout,stderr),除非您主動執行某些操作來阻止它。

+0

太簡單了!我希望我可以將2個答案標記爲解決方案。感謝您的解釋!!!! – RaytheonLiszt

+0

哦,好的。無論如何,我已經爲我制定了配額:-) –