从命令行调用python脚本,该脚本存在于另一个目录中

时间:2018-04-09 14:57:15

标签: python bash shell

我的项目结构:

/Users/user1/home/bashScrpts/shellScript.sh 
/Users/user1/home/pyScrpts/pyScrpt.py

从shell脚本我想调用pyScrpt.py

的函数

内容 pyScrpt.py

def test():
return sys.argv[1]

shellScript.sh

    DATA="testXX"
    cmd="import sys;sys.path.insert(0, '/Users/user1/home/pyScrpts/pyScrpt');import pyScrpt; print pyScrpt.test()"
    xy=$(python -c  \'${cmd}\' "${DATA}")
    echo $xy

我收到错误:

  File "<string>", line 1
   'import
SyntaxError: EOL while scanning string literal

我不知道这里出了什么问题。

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:1)

您只需要使用双引号\'替换\'${cmd}\'中的"${cmd}"

另外,您应该将import sys添加到pyScrpt.py

答案 1 :(得分:0)

我之前从未这样做过,但我猜测它可能是由于错误的功能结构,它应该是:

def test() return sys.argv[1]