为什么当我使用echo而不是cat导入代码时,python会立即退出?

为什么当我使用echo而不是cat导入代码时,python会立即退出?,python,python-3.x,bash,echo,cat,Python,Python 3.x,Bash,Echo,Cat,在打印最终的Hello 3之前,它将等待我按enter键。它还使用python的-u标志来实现无缓冲输出 为什么它对cat而不是echo执行此操作?您没有使用cat。您使用的是here文档,cat正在分别等待输入。只需卸下cat |并重试 Hello 1 Hello 2 我不认为这与Python有任何关系cat | cat正确使用cat Hello 1 Hello 2 echo "print('Hello 1')" | python3 python3 -u <<EOF print

在打印最终的
Hello 3
之前,它将等待我按enter键。它还使用python的
-u
标志来实现无缓冲输出


为什么它对
cat
而不是
echo
执行此操作?

您没有使用cat。您使用的是here文档,cat正在分别等待输入。只需卸下
cat |
并重试

Hello 1
Hello 2

我不认为这与Python有任何关系<代码>cat | cat正确使用cat
Hello 1
Hello 2
echo "print('Hello 1')" | python3
python3 -u <<EOF
print('Hello 2')
EOF
echo "print('Hello 3')" | python3
python3 <<< "print('Hello 2')"