我有两个简单的脚本 - 我试图将一些信息(日期作为输入到python脚本)传递给bash脚本.这是python之一:
#!/usr/local/bin/python
import os
import sys
import subprocess
year = "2012"
month = "5"
month_name = "may"
file = open('date.tmp','w')
file.write(year + "\n")
file.write(month + "\n")
file.write(month_name + "\n")
file.close
subprocess.call("/home/lukasz/bashdate.sh")
Run Code Online (Sandbox Code Playgroud)
这是bash one:
#!/bin/bash
cat /home/lukasz/date.tmp | \
while read CMD; do
echo -e $CMD
done
rm /home/lukasz/date.tmp
Run Code Online (Sandbox Code Playgroud)
Python脚本工作正常,没有问题.它调用bash脚本但看起来像while循环不运行.我知道bash脚本确实运行,因为执行了rm命令并删除了date.tmp文件.但是如果我在python中注释掉子进程调用然后手动运行bash脚本它可以很好地显示每一行.
简要解释我想要完成的事情.我有一个出口一个非常大的数据库,以CSV(几乎300表和数据几音乐会),然后调用bash脚本到CSV的压缩成一个文件,并将其移动到另一个位置的Python脚本.我需要将提供给python脚本的月份和年份传递给bash脚本.