GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa menyembunyikan output dari aplikasi shell di Linux?

Solusi 1:

Anda dapat mengalihkan output dari program apa pun sehingga tidak akan terlihat.

$ program > /dev/null

Ini akan mengalihkan keluaran standar - Anda masih akan melihat kesalahan apa pun

$ program &> /dev/null

Ini akan mengalihkan semua keluaran, termasuk kesalahan.

Solusi 2:

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

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

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

 command > file.log

Untuk menambahkan ke file.log, gunakan dua > s

 command >> file.log

Untuk mengalihkan kesalahan standar ke file.log, gunakan

 command 2> file.log

Dan untuk menambahkan

 command 2>> file.log

Untuk menggabungkan keluaran menjadi satu aliran dan mengirim semuanya ke satu tempat

 command > file.log 2>&1

Ini mengirimkan 2 (kesalahan standar) menjadi 1 (keluaran standar), dan mengirimkan keluaran standar ke file.log

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

 command << file.txt


Untuk detail lebih lanjut, lihat Panduan Pembuatan Skrip Bash Tingkat Lanjut.

Solusi 3:

Sembunyikan keluaran standar:

./command >/dev/null

Sembunyikan keluaran 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 &

Solusi 4:

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

Diedit:

$perintah &> /dev/null

Solusi 5:

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 yang berikut di shell:

stty flusho; command ;stty -flusho

atau jika Anda hanya ingin menyembunyikan input dari terminal dengan cara:

stty  -echo; command ;stty  echo

Lihat halaman manual stty(1) untuk informasi lebih lanjut.

Untuk Linux, yang saya tahu adalah bahwa Ubuntu 10.04 (Lucid Lynx) dan beberapa Debian/Arch Linux (berkomentar di bawah - terima kasih, hendry) tidak memiliki flusho pengaturan (dan saya tidak bisa melihat hal lain yang sesuai di halaman manual). echo pengaturan tetap berfungsi di Ubuntu.


Linux
  1. Bagaimana Cara Menetapkan Output Perintah Ke Variabel Shell?

  2. Cara Mengubah Shell Default Di Linux

  3. Cara mengubah shell default di Linux

  1. Bagaimana cara mengacak baris dalam file menggunakan alat standar di Red Hat Linux?

  2. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  3. Bagaimana saya bisa melakukan pembagian dengan variabel di shell Linux?

  1. Bagaimana Cara Menemukan Aplikasi Untuk Tipe Mime Di Linux?

  2. Bisakah proses init menjadi skrip shell di Linux?

  3. Sembunyikan output dari perintah shell hanya jika berhasil?