pengembangan-web-mp-pd.com

Bagaimana saya bisa menyembunyikan output dari aplikasi Shell di Linux?

Bagaimana saya bisa menyembunyikan output layar (printf) dari aplikasi Shell di Linux?

47
Jader Dias

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.

72
theotherreceive

Ada tiga perangkat I/O yang tersedia di baris perintah.

 standard input  - 0
 standard output - 1
 standard error  - 2

Untuk mengarahkan output standar (output default) ke file (dan menimpa file), gunakan

 command > file.log

Untuk menambahkan file.log, gunakan dua >s

 command >> file.log

Untuk mengarahkan 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 (kesalahan standar) menjadi 1 (output standar), dan mengirimkan output standar ke file.log

Perhatikan bahwa juga mungkin untuk mengarahkan input standar ke perintah yang mengharapkan input standar

 command << file.txt


Untuk lebih jelasnya, lihat Panduan Skrip Bash Lanjutan .

30
Matt Simmons

Sembunyikan output standar:

./command >/dev/null

Sembunyikan output standar dan kesalahan standar:

./command >/dev/null 2>&1

Sembunyikan keluaran standar dan kesalahan standar dan lepaskan terminal (jalankan perintah di latar belakang):

./command >/dev/null 2>&1 &
12
gummy

Jika Anda hanya ingin menyembunyikan output (dan tidak menyimpannya ke file), Anda dapat menggunakan:

Diedit:

$ command &>/dev/null

3
Lucho

Untuk Mac OS X v10.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 buntu 10.04 (Lucid Lynx) dan beberapa Debian/Arch Linux (berkomentar di bawah ini - terima kasih, hendry) tidak memiliki pengaturan flusho (dan saya tidak dapat melihat hal lain yang sesuai di halaman manual). Pengaturan echo tetap berfungsi di Ubuntu.

2
vike