最近我在使用bash时遇到了一些奇怪的问题。在尝试简化脚本时,我想到了以下一小段代码: $ o(){ echo | while read -r; do return 0; done; echo $?;}; o 0 $ o(){ echo | while read -r; do return 1; done; echo $?;}; o 1 return应该没有打印就退出了功能$?,不是吗?好吧,然后我检查了是否可以单独从管道返回: $ echo | while read -r; do return 1; done bash: return: can only `return' from a function …