我有一种情况,我需要在python脚本中调用bash脚本,而这个脚本又在另一个python脚本中调用。在
下载输出-文件.py公司名称:
#!/usr/bin/env python
import os
import sys
for i in node_path:
cmd="python watcher.py "+i
os.system(cmd) ##calling another python script
在观察者.py公司名称:
^{pr2}$复制输出_文件.sh公司名称:
#!/bin/bash
filepath=$1
cp ff /home/likewise-open/TALENTICA-ALL/mayankp/kazoo/$filepath
当我运行下载输出时-文件.py,它调用观察者.py,它反过来调用复制输出_文件.sh下面是我面临的错误:
mayankp@mayankp:~/kazoo$ python download-output-files.py
finish found
sh: 1: Syntax error: Unterminated quoted string
当我在pythonshell中运行相同的命令时,它成功地运行了bash脚本。我错过了什么?在
将字符串连接到shell命令中通常是不明智的。尝试在您的
os.system(cmd)
调用之前插入print(cmd)
,以确定您正试图运行的命令,我相信您会注意到问题所在(可能是一个文件名中有一个撇号)。在试着用}。在
subprocess.call(['python', 'watcher.py', i])
代替os.system("python watcher.py "+i)
,用subprocess.call(['/copy_output_file.sh', node])
代替{相关问题 更多 >
编程相关推荐