Python zsh:在zsh脚本中,在herdeoc之后转义换行符
我正在尝试编写一个zsh脚本,其中包含一个python 1-liner,它接受一个参数Python zsh:在zsh脚本中,在herdeoc之后转义换行符,python,shell,escaping,zsh,heredoc,Python,Shell,Escaping,Zsh,Heredoc,我正在尝试编写一个zsh脚本,其中包含一个python 1-liner,它接受一个参数 #!/bin/zsh foo_var="foo" python -c "import sys; print sys.argv" $foo_var (这不是我的实际代码,但这是我所做工作的要点。) 该代码输出以下内容: ['-c', 'foo'] 一个班轮比我想要的要长一点,所以我把它放在一个heredoc里,像这样: #!/bin/zsh bar_var="bar" python <<
#!/bin/zsh
foo_var="foo"
python -c "import sys; print sys.argv" $foo_var
(这不是我的实际代码,但这是我所做工作的要点。)
该代码输出以下内容:
['-c', 'foo']
一个班轮比我想要的要长一点,所以我把它放在一个heredoc里,像这样:
#!/bin/zsh
bar_var="bar"
python << EOF
import sys
print sys.argv
EOF
$bar_var
我需要$bar\u var
以python
的形式出现在行中,因此它将作为参数传递,但我不能将任何内容与第二个“EOF”放在同一行中。在herdoc之前我也不能有任何东西,因为python会将它解释为文件名
在第二次EOF之后,有没有办法解决强制换行的问题,或者更好的办法,通常有没有更好的办法
(这也是我的第一篇SO帖子,所以如果我在这个意义上做错了什么,请告诉我)这可能会满足你的要求:
python - $bar_var << EOF
import sys
print sys.argv
EOF
python-$bar\u var谢谢!成功了
python - $bar_var << EOF
import sys
print sys.argv
EOF