Ele faz isso (realmente) porque os desenvolvedores do shell decidiram que seria útil. Você pode fazer isso (er):
O código relevante no bash é assim:
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"); } }
qual ( IS_FOREGROUND
) sugere que você está vendo a mensagem quando não coloca seu script em segundo plano.