通过Shell脚本更新Python变量

时间:2014-04-09 19:16:47

标签: shell unix python-2.7 sh

我有一个shell脚本,它按顺序执行两个python脚本。 shell脚本执行后,我需要手动进入python脚本并更新两个变量。我希望在shell脚本中自动化这部分,但我不确定从哪里开始。

基本上,我想知道我是否可以将shell变量传递(并在每次运行时递增)到Python脚本中。

壳牌

#!/bin/sh

echo "Download Data"
python /Download.py

wait

echo "Process Data"
python /Process.py

Python下载

import downloadFunction
downloadFunction.donwload('2014-03-28')

Python Process

import processData
processData.process(data)

基本上,我想通过shell脚本增加日期,比方说5次。

所以在Python脚本中定义日期变量。

Python下载

import downloadFunction
date = '2014-03-28'
downloadFunction.donwload(date)

然后每次shell脚本运行Download.py和Process.py时,我希望它在日期中添加一天 - 比如说五天。我不知道从哪里开始。

2 个答案:

答案 0 :(得分:0)

您希望将日期作为参数传递给脚本,而不是编辑硬编码值。

Download.py

import downloadFunction
date = sys.argv[1]
downloadFunction.donwload(date)

然后在你的shell脚本中,类似

#!/bin/sh

echo "Download Data"
for d in 2014-03-28 2014-03-29 2014-03-30 2014-03-31 2014-04-01; do
    python /Download.py "$d"
done

# No need to call wait here

echo "Process Data"
python /Process.py

答案 1 :(得分:0)

打败了我。想我分享我的解决方案。基本上,与

相同
#!/bin/sh

declare -a arr=("2014-04-01")

for i in "${arr[@]}"
do
    echo "Download Data"
    export i
    python Download.py

    echo "Process Data"
    python /Process.py

done 

其中download.py

import downloadFunction
import os
x = os.environ['i']

downloadFunction(x)