La respuesta a esto depende de qué shell está utilizando. Muchos shells tienen echo
como comando incorporado lo que significa que no genera un proceso separado y, por lo tanto, no aparecerá en una lista de procesos. Sin embargo, si escribe /bin/echo
o ./echo
deshabilita los componentes integrados con el enable -n echo
comando, el shell no utilizará su comando integrado y utilizará la versión binaria en su lugar. Esto aparecerá en una lista de procesos.
Si está utilizando el binario en lugar del shell incorporado, el comando echo aparecerá durante el tiempo que sea necesario para mover los datos al búfer STDIN del otro proceso. Este búfer tiene un tamaño finito, por lo que si hay más datos de los que caben en el búfer, el comando echo tendrá que esperar un tiempo hasta que el otro proceso pueda leer algunos de los datos del búfer. Para la mayoría de los casos (como los dos ejemplos que dio anteriormente) este período de tiempo será de microsegundos. Si está pegando un volcado de SQL de 20 MB en MySQL usando echo, esto podría ser más largo. No importa cuán corto sea el tiempo, si está utilizando el binario en lugar del shell incorporado y alguien obtiene el momento justo, podrá ver el proceso en la lista de procesos.
Puede evitar esto colocando los datos secretos en un archivo (con los permisos adecuados) y utilizando el archivo como STDIN de esta manera:
mysql -u root -p < file_with_secret.sql