Он делает это (действительно) потому, что разработчики оболочки решили, что это будет полезно. Вы можете сделать его тихим (er):
Соответствующий код в bash выглядит так:
else if (IS_FOREGROUND (job)) { #if !defined (DONT_REPORT_SIGPIPE) if (termsig && WIFSIGNALED (s) && termsig != SIGINT) #else if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE) #endif { fprintf (stderr, "%s", j_strsignal (termsig)); if (WIFCORED (s)) fprintf (stderr, _(" (core dumped)")); fprintf (stderr, "\n"); } }
который ( IS_FOREGROUND
) предполагает, что вы видите сообщение, если не помещаете свой скрипт в фоновый режим.