Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menekan output dan memeriksa apakah suatu perintah berhasil atau tidak?

Perbarui :

  • if ($LASTEXITCODE -eq 0) ... pendekatan akan terus bekerja dengan kuat dengan program eksternal.
  • Namun, jika dan ketika pra-v7.2 fitur eksperimental bernama PSNotApplyErrorActionToStderr menjadi fitur resmi, if ($?) ... akan bekerja dengan kuat juga - lihat jawaban ini untuk informasi lebih lanjut.

Gunakan $LASTEXITCODE -eq 0 bukannya $? untuk mendeteksi kode keluar bukan nol dengan andal (biasanya kegagalan sinyal) yang dilaporkan oleh program eksternal.

Anda kemudian dapat menggunakan *> $null untuk menekan semua keluaran secara kategoris tanpa harus khawatir tentang dampak pengalihan tersebut pada $? :

mysql -u root --password=mypass -e "show databases" *>$null
if ($LASTEXITCODE -eq 0) {
  "Hooray!"
} else {
  "Boo!"
}

Menggunakan pengalihan yang melibatkan aliran kesalahan PowerShell - baik secara eksplisit melalui 2> atau secara implisit melalui *> - artinya jika ada data yang diterima melalui aliran itu - yang dalam hal memanggil program eksternal berarti keluaran apa pun dari stderr - PowerShell menyetel $? ke $false .

Namun, di bidang program konsol/terminal eksternal, stderr tidak hanya digunakan untuk menampilkan error informasi, tetapi informasi apa pun yang bukan data , seperti informasi status. Oleh karena itu, Anda tidak dapat menyimpulkan kegagalan dari keberadaan keluaran stderr .

Program konsol/terminal eksternal mengomunikasikan status keberhasilannya hanya melalui kode keluar , yang dicerminkan oleh PowerShell dalam $LASTEXITCODE automatic otomatis variabel.

Dari penjelasan di atas, $? bisa $false bahkan jika kode keluarnya adalah 0 , jadi ini bukan indikator keberhasilan yang dapat diandalkan - tidak seperti $LASTEXITCODE .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql temukan id terkecil + unik yang tersedia

  2. Tidak dapat menyelesaikan nama tabel yang mendekati

  3. Temukan jumlah kolom dalam sebuah tabel

  4. Apakah pernyataan yang disiapkan di-cache di sisi server di beberapa halaman dimuat dengan PHP?

  5. MySQL ORDER BY DESC cepat tetapi ASC sangat lambat