我有一个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进程
import processData
processData.process(data)
从本质上讲,我想通过shell脚本将日期增加5倍。
因此,在Python脚本中定义日期变量。
Python下载
import downloadFunction
date = '2014-03-28'
downloadFunction.donwload(date)
然后,每次shell脚本运行Download.py和Process.py时,我都希望它在日期中添加一天,比如说五天。我不知道从哪里开始。
您希望将日期作为参数传递给脚本,而不是编辑硬编码的值。
在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
就把我打得落花流水。我想我会分享我的解决方案。基本上与相同
#!/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
下载位置.py
import downloadFunction
import os
x = os.environ['i']
downloadFunction(x)