有没有办法在 bash 中获取未解释的字符串 - 它可以包括单引号和双引号以及 Bang ! 等等。 ?
我想做类似的事情
#!/bin/bash
echo -e "Line One\nLine Two\nLine three" | python -c """
import sys
for line in sys.stdin.readlines():
print "STDIN: %s" %line
""" | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
问题是零标准输入:打印行 - 标准输入没有通过管道传输到 python 程序。
这是一个用例:注意输入大小可以是低 GB 的大小:
cat "my10GBfile.dat" | python -c """ ..等
现在在那里使用 HEREDOC .eg
#!/bin/bash
echo -e "Line One\nLine Two\nLine three" | python<<-HERE
some
multiline
python
program
HERE
| awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
存在标准输入被合并的问题 - 因此输入丢失。
我真正想要的是 bash 中未解释的多行字符串。
Heredoc确实提供了一个未解释的多行字符串(至少如果你引用了分隔符);没有(简单)的方式来访问它的内容。
由于 STDIN 已被用于其他用途,您可以创建一个新的文件描述符以将 heredoc 的内容传递给 python:
exec 3<<'HERE'
import sys
print "Line Zero!\n"
for line in sys.stdin:
print line
HERE
echo -e "Line One\nLine Two\nLine Three" | python /dev/fd/3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9840 次 |
| 最近记录: |