我试图编写一个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
(同样,不是我的实际代码,但是相同的想法。)
输出:
['']
./doctest.zsh:14: command not found: bar
我需要$bar_var
作为python
在线,所以它将作为参数传递,但我不能在第二个&#39; EOF&#39 ;.我也无法在heredoc之前拥有任何东西,因为python会将其解释为文件名。
有没有办法在第二个EOF之后解决强制换行,或者更好的是,通常有更好的方法吗?
(这也是我的第一篇SO帖子,所以如果我在这个意义上做错了,请告诉我)
答案 0 :(得分:1)
这可能会做你想要的:
python - $bar_var << EOF
import sys
print sys.argv
EOF