Python 2.7 为什么python函数返回值没有分配给shell变量?

Python 2.7 为什么python函数返回值没有分配给shell变量?,python-2.7,shell,Python 2.7,Shell,python: for line in sys.stdin: foo(line) def foo(name): return "hello " + name welcome_saying = $(echo "Tom" | python welcome.py) echo "$welcome_saying" 外壳: for line in sys.stdin: foo(line) def foo(name): return "hello " + name welcome_say

python:

for line in sys.stdin:
  foo(line)
def foo(name):
  return "hello " + name
welcome_saying = $(echo "Tom" | python welcome.py)
echo "$welcome_saying"
外壳:

for line in sys.stdin:
  foo(line)
def foo(name):
  return "hello " + name
welcome_saying = $(echo "Tom" | python welcome.py)
echo "$welcome_saying"
我希望控制台中打印“hello Tom”,但没有打印。

打印(“hello”+姓名)

return
将值返回给调用函数,而不是控制台


然后您必须正确地写入管道:

我希望使用返回值
welcome\u说
,而不是在控制台上打印。哦,我明白了,它必须从
print
sys.stdout.write(welcome())
写入stdout,然后需要将输出放入变量中,但它也将stderr赋值给shell变量。