Bagaimana cara menyembunyikan keluaran layar (printf) dari aplikasi shell di Linux?
Bagaimana cara menyembunyikan keluaran layar (printf) dari aplikasi shell di Linux?
Jawaban:
Anda dapat mengarahkan output dari program apa pun sehingga tidak akan terlihat.
$ program > /dev/null
Ini akan mengarahkan output standar - Anda masih akan melihat kesalahan
$ program &> /dev/null
Ini akan mengarahkan semua output, termasuk kesalahan.
wget
Anda dapat menggunakan -q
opsi untuk membuatnya tenang.
Ada tiga perangkat IO yang tersedia di baris perintah.
standard in - 0
standard out - 1
standard error - 2
Untuk mengalihkan standar keluar (output default) ke file (dan menimpa file), gunakan
command > file.log
Untuk menambahkan file.log, gunakan 2> s
command >> file.log
untuk mengarahkan ulang kesalahan standar ke file.log, gunakan
command 2> file.log
dan untuk menambahkan
command 2>> file.log
Untuk menggabungkan output menjadi satu aliran dan mengirim semuanya ke satu tempat
command > file.log 2>&1
Ini mengirimkan 2 (stderr) menjadi 1 (stdout), dan mengirimkan stdout ke file.log
Perhatikan bahwa mungkin juga untuk mengarahkan ulang standar ke dalam perintah yang mengharapkan stdin
command << file.txt
Sunting
Untuk lebih jelasnya, lihat Panduan Script Bash Lanjutan
command > file.log 2>&1
kerjanya?
> file
dan yang kedua 2>&1
. Yang pertama mengarahkan standar keluar ke file. Yang kedua mengambil deskriptor file ke-2 dan mengarahkannya ke yang pertama. Anda dapat melakukan sebaliknya, mengarahkan output standar ke kesalahan standar menggunakan >&2
dan kemudian mengarahkan kesalahan standar ke file dengan 2> file
.
Jika Anda hanya ingin menyembunyikan output (dan tidak menyimpannya ke file), Anda dapat menggunakan:
Diedit:
$ command &> / dev / null
Untuk Mac OS X (10.6 "Snow Leopard"):
Jika Anda perlu menyembunyikan output tanpa membiarkan program mengetahuinya dengan memeriksa deskriptor file output / kesalahan Anda dapat mencoba menggunakan berikut ini di shell:
stty flusho; command ;stty -flusho
atau jika Anda hanya ingin menyembunyikan input dari terminal:
stty -echo; command ;stty echo
Lihat halaman manual stty (1) untuk informasi lebih lanjut
Untuk Linux yang saya tahu adalah bahwa Ubunutu (10,04 "Lucid") dan beberapa "Debian / Arch" (komentar di bawah - tnx hendry) tidak memiliki flusho
pengaturan (dan saya tidak dapat melihat hal lain yang sesuai di halaman manual) . The echo
pengaturan bekerja pada Ubuntu pula.