GNU/Linux >> Belajar Linux >  >> Linux

Mengarahkan output perintah ke variabel di bash gagal

Mungkin hasilnya adalah stderr , bukan stdout ? Coba ini:

OUTPUT=$(sudo apache2ctl configtest 2>&1)

Untuk nginx kemungkinan situasi ketika configtest dapat berhasil dengan kesalahan pada file konfigurasi. Contoh:

nginx: [warn] conflicting server name "test.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

untuk kesalahan pemeriksaan yang benar dalam skrip bash perlu digunakan:

if [[ $((sudo /sbin/service nginx configtest) 2>&1 | grep "failed\|warn" ) ]]; then
    echo "ERROR!!!"
else
    echo "OK!!!"
fi

Linux
  1. Pisahkan keluaran perintah dengan kolom menggunakan Bash?

  2. perintah ekspor bash

  3. Keluar dari kode penugasan variabel ke substitusi perintah di Bash

  1. Cara Menetapkan Output dari Perintah Linux ke Variabel

  2. Redirect output dari perintah waktu di unix ke dalam variabel di bash?

  3. Bash find perintah output verbose

  1. Skrip bash(I)

  2. Menyimpan Output Perintah Dalam Variabel Shell?

  3. Apakah Saya Perlu Mengutip Substitusi Perintah Saat Menetapkan Outputnya Ke Variabel??