Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 zsh:在zsh脚本中,在herdeoc之后转义换行符_Python_Shell_Escaping_Zsh_Heredoc - Fatal编程技术网

Python zsh:在zsh脚本中,在herdeoc之后转义换行符

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 <<

我正在尝试编写一个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 << 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