Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Bash (linux/macos):
Tento prístup využíva vstavanú chybu a presmerovanie chýb spoločnosti Bash:
`` `Bash
#!/bin/bash
command_to_execute ="Niektorí_invalid_command arg1 arg2"
$ command_to_execute 2> &1> errorlog.txt
Ak [$? -e 0]; potom
Echo "Command '$ command_to_execute' zlyhal. Podrobnosti nájdete v časti Errorlog.txt."> &2
FI
`` `
* `2> &1`:Táto presmeruje štandardnú chybu (stderr, deskriptor súboru 2) na štandardný výstup (stdout, deskriptor súboru 1). To zaisťuje chybové správy a akýkoľvek výstup z príkazu sú zachytené v `errorlog.txt`.
* `> errorlog.txt`:Toto presmeruje stdout (ktorý teraz obsahuje aj stderr) do súboru` errorlog.txt`. Akýkoľvek existujúci obsah v súbore bude prepísaný. Ak sa chcete pripojiť namiesto prepísania, použite `>> errorlog.txt`.
* `$?`:Táto premenná obsahuje stav výstupu naposledy vykonaného príkazu. 0 označuje úspech, zatiaľ čo akákoľvek iná hodnota označuje zlyhanie.
2. PowerShell (Windows):
PowerShell ponúka sofistikovanejšie spracovanie chýb:
`` `PowerShell
$ command ="Niektorí_invalid_command arg1 arg2"
skús {
&$ príkaz
}
chytiť {
# Napíšte chybovú správu do súboru protokolu.
$ _. Výnimka.Message | Out -file -FilePath "errorlog.txt" -Append
Write-Eror „Príkaz“ $ príkaz 'zlyhal. Podrobnosti nájdete v časti ErrorLog.txt. “
}
`` `
* `Skúste ... Catch`:Tento blok rieši potenciálne výnimky počas vykonávania príkazu.
* `$ _. Výnimka.Message`:Toto extrahuje chybové hlásenie z objektu výnimiek.
* `Out -File -FilePath" errorlog.txt "-Append`:Toto je pripojené k chybovému hláseniu do súboru` errorlog.txt`.
3. Python (krížová platňa):
Python umožňuje viac programového riadenia a je nezávislý od platformy:
`` `Python
subproces
import
command =["some_invalid_command", "arg1", "arg2"]
skúsiť:
result =subprocess.run (príkaz, stderr =subproces.pipe, text =true, check =true)
#Ak je úspešný, výsledok.stderr bude prázdny.
Okrem subprocesu.CalledProcesserror ako e:
s Open ("errorlog.txt", "a") ako f:
f.Write (f "command '{command}' zlyhal s návratovým kódom {e.returncode}:\ n")
F.Write (E.stderr + "\ n")
print (f "command '{command}' zlyhalo.
Okrem filenotfounderror:
s Open ("errorlog.txt", "a") ako f:
f.Write (f "command '{command}' nenájde. \ n")
print (f "command '{command}' nenájde.
`` `
* `subprocess.run`:Toto vykoná príkaz.
* `stderr =subprocess.pipe`:zachytáva stderr.
* `Text =true`:Zabezpečuje, že výstup je dekódovaný ako text.
* `Check =True`:Vyvoláva výnimku, ak príkaz vráti nenulový výstupný kód.
* `FilenotFoundError` sa výslovne zaobchádza s riešením príkazov, ktoré neexistujú.
Nezabudnite nahradiť `" some_invalid_command arg1 arg2 "` s vaším skutočným príkazom. Príklady používajú `errorlog.txt`, ale môžete si vybrať akýkoľvek názov súboru, ktorý uprednostňujete. Vždy zvážte vhodné spracovanie chýb, aby ste zabránili neočakávanému zrúteniu vášho skriptu. Príklad Python demonštruje robustné spracovanie chýb; Odporúča sa prijať podobný prístup pre zložitejšie scenáre.