Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;语法错误:未终止的带引号的字符串";从Python调用bash脚本时出错_Python_Python 3.x_Shell - Fatal编程技术网

&引用;语法错误:未终止的带引号的字符串";从Python调用bash脚本时出错

&引用;语法错误:未终止的带引号的字符串";从Python调用bash脚本时出错,python,python-3.x,shell,Python,Python 3.x,Shell,有一种情况,我需要在一个python脚本中调用一个bash脚本,而这个脚本又在另一个python脚本中调用 下载-output-files.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 watcher.py: #!/usr/bin/env py

有一种情况,我需要在一个python脚本中调用一个bash脚本,而这个脚本又在另一个python脚本中调用

下载-output-files.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
watcher.py:

#!/usr/bin/env python
import os
import time

        if 'finish' in child:
            print "finish found"
        cmd="./copy_output_file.sh "+node   
        os.system(cmd) ##Calling shell script here
复制_输出_文件.sh:

#!/bin/bash

filepath=$1
cp ff /home/likewise-open/TALENTICA-ALL/mayankp/kazoo/$filepath
当我运行下载输出文件.py时,它调用watcher.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\u output\u file.sh',node])
将字符串连接到shell命令中通常是不明智的。尝试在
os.system(cmd)
调用之前插入
print(cmd)
,以准确了解您试图运行的命令,我希望您会注意到问题所在(可能是文件名中有撇号)


尝试使用
subprocess.call(['python',watcher.py',i])
而不是
os.system(“python watcher.py”+i)
,以及
subprocess.call(['/copy\u output\u file.sh',node])
而不是
os.system(cmd=“/copy\u output\u file.sh”+node)

如果它是由shell脚本中的不带引号的变量引起的,我不会感到惊讶。但是为什么要使用shell脚本来实现一些可以用Python轻松完成的事情呢?!这个问题的代码似乎太多了。如果你能精简到一个最小的例子,我将撤回我的投票。@ChrisMartin,我已经编辑了我的代码,保留了最小的代码。你现在能帮忙吗?@Biffen,你在shell脚本中说无引号的变量是什么意思?我想将一个文件复制到另一台服务器,因此我想使用scp。在上面的代码中,它只是一个bash脚本示例。我不知道如何用Python将一个文件复制到另一台服务器。@MayankPorwal
filepath=$1
应该是
filepath=“$1”
,等等。这是检查这些东西的一个很好的工具。如果它是由shell脚本中的不带引号的变量引起的,我不会感到惊讶。但是为什么要使用shell脚本来实现一些可以用Python轻松完成的事情呢?!这个问题的代码似乎太多了。如果你能精简到一个最小的例子,我将撤回我的投票。@ChrisMartin,我已经编辑了我的代码,保留了最小的代码。你现在能帮忙吗?@Biffen,你在shell脚本中说无引号的变量是什么意思?我想将一个文件复制到另一台服务器,因此我想使用scp。在上面的代码中,它只是一个bash脚本示例。我不知道如何用Python将文件复制到另一台服务器。@MayankPorwal
filepath=$1
应该是
filepath=“$1”
,等等。这是检查这些东西的一个很好的工具。我在os.system(cmd)之前插入了一个print(cmd),它就工作了。ThanksI在os.system(cmd)之前插入了一个print(cmd),它工作了。谢谢