zsh:在zsh脚本中作业文件后的换行转义
我正在尝试写一个 zsh 脚本,其中包含一个可以接收参数的 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
(同样,这不是我的实际代码,但想法是一样的。)
这段代码输出:
['']
./doctest.zsh:14: command not found: bar
我需要 $bar_var
和 python
在同一行,这样它才能作为参数传递,但我不能在第二个 'EOF' 的同一行上放任何东西。而且在 heredoc 之前也不能有任何内容,因为 Python 会把它当作文件名来处理。
有没有办法解决在第二个 EOF 后必须换行的问题,或者更好的是,通常有没有更好的方法来做到这一点?
(另外,这是我第一次在 Stack Overflow 发帖,所以如果我在这方面做错了什么,请告诉我。)
1 个回答
1
这可能是你想要的效果:
python - $bar_var << EOF
import sys
print sys.argv
EOF