我有一个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时,我希望它在日期中添加一天 - 比如说五天。我不知道从哪里开始。
答案 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)