我正在考慮一堆腳本,並在python中爲它們創建一個包裝。我沒有創建給我的腳本。目前我正在使用Python 2.2,而我正在使用的shell是一個csh shell。grep:破管錯誤python 2.2
當我運行在以下方式的腳本:
>> setenv some_var '/some/path/'
>> <some more setenv>
>> ./script -flag >& log.txt < /dev/null &
它運行的完美的罰款。
當我使用bash包裝來調用我的python包裝時,問題就出現了。我的bash腳本(analysis.sh)如下:
#!/bin/bash
#environment variables
ENV1='/path/for/env1'
ENV2='/path/for/env2'
export ENV1
export ENV2
./run_analysis.py [email protected]
exit
在我的Python文件,所有我基本上做的是執行
....
os.system(script_path + script_name + script_flag)
....
每當我在CSH以下方式運行該腳本外殼:
./analysis.sh -flag script_name >& log.txt < /dev/null &
腳本一下子給了我一堆破管的錯誤(「grep的:寫作輸出:殘破的管道」)。我知道腳本確實使用了很多grep。我只是不明白爲什麼這些錯誤會在我執行重定向時彈出。在python 2.2中,只有'os'和'commands'模塊存在。我被迫使用這些限制。
謝謝。
那麼你是說擺脫在bash腳本中的「退出」?爲什麼會達到這種說法?不僅會到達這裏一次./run_analysis完成了嗎? – de1337ed 2012-07-17 16:24:25
@ de1337ed - 沒有說什麼 - 只是解釋情況是什麼...... – 2012-07-17 16:25:18
我需要在python腳本中執行某種waitpid嗎? – de1337ed 2012-07-17 16:28:45