Jawabannya tergantung pada shell yang Anda gunakan. Banyak kerang memiliki echo
sebagai builtin perintah yang berarti bahwa itu tidak menelurkan sebuah proses yang terpisah dan karenanya tidak akan muncul dalam proses daftar. Namun, jika Anda mengetik /bin/echo
atau ./echo
atau jika Anda menonaktifkan builtin dengan enable -n echo
perintah, maka shell tidak akan menggunakan perintah builtin dan akan menggunakan versi biner. Ini akan muncul dalam daftar proses.
Jika Anda menggunakan biner daripada shell builtin, perintah echo akan muncul selama diperlukan untuk memindahkan data ke buffer STDIN proses lainnya. Buffer ini memiliki ukuran yang terbatas sehingga jika ada lebih banyak data daripada yang akan muat di buffer, perintah echo harus menunggu sebentar sampai proses lain dapat membaca beberapa data keluar dari buffer. Untuk sebagian besar kasus (seperti dua contoh yang Anda berikan di atas) periode waktu ini akan menjadi mikrodetik. Jika Anda menyisipkan dump 20MB SQL ke MySQL menggunakan gema, ini bisa lebih lama. Tidak peduli seberapa pendek waktunya, jika Anda menggunakan biner alih-alih shell builtin dan seseorang mendapatkan waktu yang tepat, mereka akan dapat melihat proses dalam daftar proses.
Anda dapat menghindari ini dengan memasukkan data rahasia ke dalam file (dengan izin yang sesuai) dan menggunakan file sebagai STDIN seperti ini:
mysql -u root -p < file_with_secret.sql