我有两个简单的脚本 - 我试图将一些信息(日期作为 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")
这是 bash 之一:
#!/bin/bash
cat /home/lukasz/date.tmp | \
while read CMD; do
echo -e $CMD
done
rm /home/lukasz/date.tmp
Python 脚本工作正常,没有问题。它调用了 bash 脚本,但看起来 while 循环没有运行。我知道 bash 脚本确实整体运行,因为 rm 命令被执行并且 date.tmp 文件被删除。但是,如果我在 python 中注释掉子进程调用,然后手动运行 bash 脚本,它可以很好地显示每一行。
简要说明我要完成的工作。我有一个 python 脚本,它将一个非常大的数据库导出到 CSV(几乎 300 个表和一些数据),然后调用 bash 脚本将 CSV 压缩到一个文件中并将其移动到另一个位置。我需要将提供给 python 脚本的月份和年份传递给 bash 脚本。