Puncte:0

Cum să verific dacă ultimele k comenzi au rulat cu succes

drapel cn

Rulez câteva comenzi bash și vreau să verific dacă toate au rulat cu succes la sfârșit. Cum ar trebui să mă ocup de asta?
Asta am incercat.

$ man # comanda 1 cu starea de ieșire 1
Ce pagina de manual vrei?

$ res1=$? # comanda 2 cu starea de ieșire 0
# acesta stochează și codul de ieșire al codului anterior, adică 1

$ res2=$? # stocarea codului de ieșire al comenzii anterioare, adică 0

# Acum vreau să verific dacă toate comenzile anterioare au funcționat bine cu codurile lor de ieșire
$ echo $res1 && $res
1
0: comanda nu a fost găsită

Ce este incorect cu abordarea mea actuală. Sau Care ar trebui să fie lucrul corect de făcut? Există o modalitate mai bună de a o generaliza pentru ultimele k comenzi.
Mulțumesc anticipat.

guiverc avatar
drapel cn
Echo $res`, dar apoi cereți ca `$res` să fie executat ca o comandă? astfel, „comanda nu a fost găsită” este validă, deoarece nici eu nu cunosc o comandă 0. `&&`, așa cum ați specificat, întrerupe comenzile și execută următoarele NUMAI DACĂ prima parte a fost executată cu succes; astfel `$res` a fost încercat să fie executat; dar 0 este invalid... deci eroare
Puncte:0
drapel in

Am avut si eu niste probleme ca asta

imi rezolv problema in acest fel

mai întâi, am scris o funcție care verifică starea comenzii pe care o rulez în scriptul meu


funcția show_process_status() {
    dacă [ $? == 0]; atunci 
        eco $1
    altfel
        ecou $2
        pauză
    fi
}

apoi, în scriptul meu, apelez această funcție după orice comandă pe care o rulez, de exemplu:

function update_system (){
    echo „începe actualizarea sistemului”
    sudo apt-get update -y
    show_process_startus „repos updated success” „A apărut o eroare la actualizarea depozitului”
    dacă [[ $1 == „plin” ]]; atunci
        sudo apt-get dist-upgrade -y
        show_process_startus „Sistemul a fost actualizat cu succes” „A apărut o eroare la actualizarea sistemelor”
    elif [[ $1 == "remediere" ]]; atunci 
        sudo apt-get update --fix-missing
        show_process_startus „actualizare a remedierii lipsă cu succes” „A apărut o eroare la remedierea lipsă”
        sudo apt-get update
    fi
}

în arată starea_procesului Funcția primesc două argumente, primul este tipărit atunci când codul rulează și iese cu succes, iar al doilea este folosit când comanda exit nu are succes.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.