我知道here-doc转到标准输入。我看到here-doc优先于来自管道的内容之前进入标准输入(见下文)。
但也许有一个技巧可以让它发挥作用?
总而言之,我想避免创建脚本文件。我知道-c
python 中有 switch,但也不想将所有内容都放在一行中。
echo values | python3 <<SCRIPT
with open('/dev/stdin') as f:
print(f.read()) # -> "values"
SCRIPT
目前的输出是脚本本身:
with open('/dev/stdin') as f:
print(f.read()) # -> "values"
答案1
你不能有两个标准输入——Python 如何知道代码在哪里停止以及内容在哪里开始?
这是使用的解决方法流程替代:
echo values | python3 <(cat <<SCRIPT
with open('/dev/stdin') as f:
print(f.read()) # -> "values"
SCRIPT
)