Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да потисна изхода и да провери дали дадена команда е успешна или не?

Актуализиране :

  • if ($LASTEXITCODE -eq 0) ... подходът ще продължи да работи стабилно с външни програми.
  • Въпреки това, ако и когато пред-v7.2 експериментална функция с име PSNotApplyErrorActionToStderr става официална функция, if ($?) ... също ще работи стабилно - вижте този отговор за повече информация.

Използвайте $LASTEXITCODE -eq 0 вместо $? за надеждно откриване на ненулев код за изхода (обикновено сигнализиращ отказ), докладван от външна програма.

След това можете да използвате *> $null за категорично потискане на всички изходи без да се притеснявате за въздействието на това пренасочване върху $? :

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

Използване на пренасочване, което включва потока за грешки на PowerShell - или изрично чрез 2> или имплицитно чрез *> - означава, че ако някакви данни бъдат получени чрез този поток - което в случай на извикване на външна програма означава всякакъв изход от stderr - PowerShell задава $? до $false .

Въпреки това, в сферата на външните конзолни/терминални програми, stderr не се използва само за извеждане на грешка информация, но всяка информация, която не е данни , като информация за състоянието. Следователно, не можете да заключите неизправност от наличието на изход stderr .

Външните конзолни/терминални програми съобщават състоянието си на успех единствено чрез своя изходен код , което PowerShell отразява в автоматичния $LASTEXITCODE променлива.

От горното следва, че $? може да бъде $false дори ако изходният код е 0 , така че не е надежден индикатор за успех - за разлика от $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. Конфигурация на CentOs PHP и MySql

  2. Как да изберете записи от последните 3 минути от MySQL с PHP

  3. получаване на mysql_insert_id(), докато използвате ON DUPLICATE KEY UPDATE с PHP

  4. Как да изградим проста система за преглед и оценка от 5 звезди?

  5. Разгръщане на сървър Percona в хибриден облак