Bash Shell脚本Python调用失败,出现语法错误

Bash Shell脚本Python调用失败,出现语法错误,bash,python-2.7,shell,ubuntu,virtualenv,Bash,Python 2.7,Shell,Ubuntu,Virtualenv,我目前正在准备一个shell脚本,作为其功能的一部分,它必须执行一些Python调用 PY_OP=$(python-c'import my_package as mp;print mp.some_operation()) 但是,当我在bash中调用shell脚本时,我只收到一个非常奇怪的语法错误: $。/my_script.sh 文件“”,第1行 作为mp导入我的_包;打印mp.some_操作() ^ SyntaxError:无效语法 有趣的是,如果仅从bash中执行python-c…命令,

我目前正在准备一个shell脚本,作为其功能的一部分,它必须执行一些Python调用

PY_OP=$(python-c'import my_package as mp;print mp.some_operation())
但是,当我在bash中调用shell脚本时,我只收到一个非常奇怪的语法错误:

$。/my_script.sh
文件“”,第1行
作为mp导入我的_包;打印mp.some_操作()
^
SyntaxError:无效语法
有趣的是,如果仅从bash中执行
python-c…
命令,则不会发生此错误

作为补充信息,我可以说:

  • 我正在使用一个
    virtualenv
    来包含所有
    pip
    安装的软件包
  • 我使用的Python版本是2.7.12
  • 我的操作系统是elementaryOS 0.4.1(但它完全基于Ubuntu 16.04)

任何关于我做错了什么的建议或提示都将不胜感激。

根据@Cyrus在回答最初问题时给出的评论,我能够使用
cat-A{file name}.sh
命令解决问题

在文件上执行它会显示以下内容:

  • 期望值:
    将我的\u包作为mp导入
  • 现实:
    importM BM-my_packageM-BM-asM BM-mp

不幸的是,这些
M-BM-
在Atom或Sublime等普通编辑器中不可见,但在执行
sh
-文件时似乎会产生影响。这也解释了错误点的奇怪位置,它指向一个空白(实际上似乎是一些特殊的、不可见的字符)。

我得到了这三行:
回溯(最近一次调用):
文件“”,第1行,在
和导入错误:没有名为my_package的模块。请检查您的文件是否有特殊字符:
cat-A file.sh
cat-v file.sh
@Cyrus谢谢您的提示
cat-A file.sh
已经成功了。当我运行它时,
import
语句实际上看起来像这样
importM BM-my_packageM-BM-asM BM-mp
。尽管这些字符在普通编辑器中是不可见的,但显然是这些字符导致了脚本失败。如果你只是简单地将评论复制到一个答案中,我很乐意接受它作为正确的解决方案。