Analizzare il JSON della CLI dosya in uno script

Conserva il codice di uscita della CLI dosya, analizza il JSON valido del comando anche in caso di errori parziali e avvia le attività dipendenti solo dopo aver verificato il successo.

Ultima revisione

Gli screenshot mostrano l’interfaccia in inglese.

Uno script wrapper affidabile conserva lo stato del processo dosya prima di eseguire jq. L’output JSON dipende dal comando e i comandi collettivi normalmente producono risultati utilizzabili per successi ed errori prima di terminare con 1 se almeno un elemento non è riuscito.

Quattro riquadri mostrano separazione dell’output, conservazione della categoria di uscita CLI, verifica del JSON specifico e analisi delle ricevute di errori nelle operazioni collettive.
Il diagramma illustra la separazione dell’output, la conservazione della categoria di uscita della CLI, la verifica del JSON specifico del comando e l’esame delle ricevute di errori nelle operazioni collettive prima delle attività dipendenti. Apri lo screenshot a dimensione intera.

Prima di iniziare

  • Usa file temporanei con permessi restrittivi per gli output che possono contenere nomi o ID.
  • Mantieni set -o pipefail quando usi una pipeline, oppure evita la pipeline affinché il parser non possa nascondere lo stato della CLI.
  • Scegli un’asserzione jq -e precisa per la risposta documentata del comando.

Procedura

  1. Crea file separati per stdout e stderr, poi esegui il comando con --json; ad esempio dosya whoami --json >result.json 2>result.err.
  2. Acquisisci subito status=$? e classificalo senza sostituirlo con lo stato di jq. Conserva stderr insieme al risultato numerico originale.
  3. Se stdout non è vuoto, esegui jq -e . result.json anche dopo un’uscita diversa da zero. Conserva l’output valido del comando; se l’analisi non riesce, segnalalo separatamente senza perdere lo stato di dosya.
  4. Applica un selettore specifico del comando, ad esempio l’identificativo utente richiesto da whoami o la raccolta di elementi attesa da ls. Non esiste un contenitore universale delle risposte.
  5. Per i comandi collettivi mv, rm, download ricorsivo, cestino, preferiti o sincronizzazione, esamina le voci failures e il numero di successi del comando. Un’operazione parziale normalmente produce JSON valido e termina con 1.
  6. Avvia le attività dipendenti solo se lo stato di dosya è 0 e la condizione finale specifica del comando è soddisfatta. Conserva un risultato parziale depurato per il recupero, poi elimina i file temporanei sensibili.
Panoramica CLI dosya con riferimenti di installazione e comandi per analizzare il JSON della CLI in uno script.
La panoramica CLI fornisce riferimenti per l’installazione e i comandi usati nella guida all’analisi del JSON della CLI dosya in uno script. Apri lo screenshot a dimensione intera.

Risultato previsto

Il wrapper conserva la categoria di errore della CLI, estrae risultati utili da JSON valido anche con codice di uscita diverso da zero e avvia le attività dipendenti solo dopo l’uscita 0 e il superamento della condizione finale del comando.

Risoluzione dei problemi

Il file JSON è vuoto. Leggi stderr e lo stato del processo salvato; evita di segnalare jq come causa dell’errore.

Un comando collettivo termina con 1 e produce JSON valido. Conserva il numero di successi e le voci di errore, correggi o segnala ogni elemento non riuscito e considera l’attività complessiva non riuscita.

Gli avvisi interrompono l’analisi. Dovrebbero essere su stderr. Non unire i flussi e verifica che il wrapper invochi il binario CLI corrente.

Guide correlate

Ti è stata utile?

Caricamento delle valutazioni…

Quando voti, salviamo un cookie tecnico per un massimo di 180 giorni, così puoi cambiare la tua risposta.

Domande e risposte

Fai una domanda sui passaggi di questa guida. Le domande vengono revisionate prima della pubblicazione.

Non inserire dati dell’account, credenziali o file privati nelle domande pubbliche. Usa l’assistenza privata in questi casi.

Caricamento delle domande…

    Accedi al tuo account dosya per fare una domanda.

    Controlla il risultato prima di riprovare

    Usa questi controlli quando devi verificare il risultato di un’attività.