He probado esos comandos.
~$top (ctrl + z)stopped the process ~$echo $? 147 ~$top (ctrl + c)killed the process ~$echo $? 0Qué sucedió aquí, explíquelo y por qué muestra un valor constante. Cuál es el significado de esos valores.
$? es el código de retorno del último proceso ejecutado. 0 significa que no ocurrió ningún error. Otros valores representan algún tipo de condición inusual.
Los valores de 128 y superiores suelen representar algún tipo de señal. 147 - 128 = 19, lo que significa que el programa recibió la señal 19 ( SIGSTOP en Linux). Ahora, normalmente al presionar ^Z se envía SIGTSTP (una señal diferente de SIGSTOP ), lo que probablemente significó que top captó esa señal, realizó una limpieza (probablemente relacionada con la terminal) y volvió a emitir SIGSTOP para suspender el programa.
top también atrapó SIGINT (que normalmente se emite después de presionar ^ C), para hacer limpieza y salir limpiamente (con valor de salida 0).
Puede ejecutar kill -l para ver cuáles son todos los números de señal para la plataforma actual. Tenga en cuenta que los números son diferentes para diferentes plataformas; por ejemplo, SIGSTOP es 17 en Darwin y 19 en Linux.
echo $? devuelve el valor de retorno (estado de salida) del último comando ejecutado (0 suele ser un success ).