从Python调用bash脚本时出现“Syntax error:Unterminated quoted string”错误

2024-09-19 23:36:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一种情况,我需要在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脚本。我错过了什么?在


Tags: 文件pyimport脚本名称cmdbashbin
1条回答
网友
1楼 · 发布于 2024-09-19 23:36:36

将字符串连接到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])代替{}。在

相关问题 更多 >