如何在Here Document之后给出参数?

时间:2013-11-08 08:16:23

标签: python bash heredoc

我想通过“Here Document”在我的bash shell脚本中执行一些python脚本,如下所示

python <<'__SCRIPT__'
...
__SCRIPT__
ARG1 ARG2 ...

但不知道如何提出这些论点。我已经尝试将它们放在python之后,在 SCRIPT 之后,并在 SCRIPT 之后添加一个新行。但是在执行的所有情况下都会报告错误。

那么正确的方法是什么?

BR,RUOCHEN

2 个答案:

答案 0 :(得分:7)

参数是命令的一部分。

python - arg1 arg2 << ...

答案 1 :(得分:3)

<<__SCRIPT__实际上不是传递给python的脚本,它是包含脚本的流。你必须告诉python在哪里获取脚本,在这种情况下是-。这就是python - arg1 arg2 <<'__SCRIPT__'

的原因
$ cat here-py.sh
python - foo bar <<__SCRIPT__
import sys
print(sys.argv)
__SCRIPT__
$ ./here-py.sh
['-', 'foo', 'bar']