我試圖在使用TCL執行外部程序時實現重試機制。試圖將STDIN提供給外部程序時遇到一些問題。我現在正在用一個簡化的例子來解決這個問題。以下面的python腳本(simple.py):TCL - 將STDIN餵給exec
x = raw_input()
y = raw_input()
print x + y
從輸出中輸入2個字符串將是字符串的連接結果。
現在從TCL解釋以下命令作品:
% exec python stuff.py << 1\n2
12
但是當我嘗試它在單獨的命令拆分,或者他們在此之前添加一個字符串,它失敗。
失敗1:
% set cmd "python simple.py << 1\n2"
% exec $cmd
couldn't execute "python simple.py << 1
2": no such file or directory
故障2:
% set cmd1 "python simple.py"
% set cmd2 "1\n2"
% exec $cmd1 << $cmd2
無法執行 「蟒simple.py」:沒有這樣的文件或目錄
故障3:
% set fullCommandString "exec python simple.py << 1\n2"
% eval $fullCommandString
Traceback (most recent call last):
File "simple.py", line 2, in <module>
y = raw_input()
EOFError: EOF when reading a line
第三種情況似乎啓動腳本,但它將STDIN的兩行解釋爲一行。
任何幫助表示讚賞。