Pageferry
Flussi di lavoro

Esecuzione script Bash: dalla cartella al codice di uscita

03
Esegui uno script

Esegui uno script Bash con argomenti in WSL o via SSH

Uno script Bash può essere avviato in tre modi: `bash script.sh arg1 arg2`, `./script.sh` dopo `chmod +x` (che funziona grazie alla riga shebang), o tramite il comando integrato `exec`, che sostituisce la shell e non restituisce mai il controllo. La prima forma è la più semplice per iniziare, perché non richiede modifiche ai permessi. Shell esegue il comando nell'ambiente che hai scelto, ovvero WSL sul tuo PC o un sistema Linux di tua proprietà raggiunto via SSH, e la scheda nella chat mostra l'output reale e il codice di uscita. Decidi tu gli argomenti, così puoi testare il caso normale e quello di errore in una sola conversazione. Spesso ci si chiede quale forma scegliere: usa `bash script.sh` durante i test, perché funziona anche quando il file non ha il permesso di esecuzione, e passa a `./script.sh` una volta che lo script è definitivo e inizia con la riga shebang. Qualunque forma tu usi, lo stato di uscita è lo stesso numero, da 0 a 255, e 0 indica sempre che lo script è terminato con successo.

01

Apri la cartella

Scegli la cartella che contiene il tuo script come cartella di lavoro; gli strumenti di file come read_file e grep operano all'interno di essa. Gli strumenti di file sono limitati a quella cartella, mentre Shell, web e SSH non lo sono.

02

Scegli una modalità di approvazione

Usa Ask first per vedere ogni modifica come una diff, o Plan only per leggere prima un piano. Auto-run agisce immediatamente. Ask first si ferma solo prima delle azioni che modificano qualcosa.

03

Richiedi l'esecuzione

Descrivi l'esecuzione con parole semplici, ad esempio: esegui lo script con l'argomento test. Indica WSL o il tuo server se ne hai entrambi. Indica lo script e i suoi argomenti esattamente come sono.

04

Leggi il risultato

Apri la scheda per vedere l'output e il vero codice di uscita, quindi accetta o rifiuta qualsiasi modifica. Un numero diverso da zero è un'informazione. Esegui di nuovo dopo ogni modifica accettata. Confrontalo con il risultato che ti aspettavi.

Un piccolo esempio di script

greet.sh
#!/usr/bin/env bash
# greet.sh - print a greeting a few times
set -eu
if [ "$#" -lt 1 ]; then
  echo "Usage: $0 NAME [COUNT]" >&2
  exit 2
fi
name="$1"
count="${2:-1}"
for i in $(seq 1 "$count"); do
  echo "Hello, $name ($i)"
done
exit 0

greet.sh termina con una riga di utilizzo e codice di uscita 2 quando il nome è mancante, accetta un conteggio opzionale con un valore predefinito di 1, e stampa solo i saluti in un ciclo. Leggilo una volta prima di eseguirlo: non c'è sudo, nessun download e nulla che sposti o elimini file, quindi è innocuo testarlo su qualsiasi macchina di tua proprietà. Riga per riga: la shebang nomina l'interprete, set -eu interrompe lo script in caso di errori e variabili non definite, il test di $# conta gli argomenti, e il ciclo for esegue solo echo.

Esegui uno script in quattro piccoli passaggi

Crea il file dello script

Inizia con una cartella di lavoro vuota. Chiedi all'agente di scrivere l'esempio sopra, e write_file crea greet.sh in quella cartella. Apri la scheda e leggi il file riga per riga: la prima riga è la shebang che nomina l'interprete, set -eu interrompe lo script in caso di errori e variabili non definite, e il controllo di $# protegge il resto da un nome mancante. Con Ask first il nuovo file attende il tuo OK prima di essere scritto. Nulla è stato ancora eseguito. Il ramo di utilizzo di questo script sceglie 2 per un utilizzo errato, che è una convenzione comune. Accetta il file solo quando comprendi ogni riga, e se non lo fai, chiedi all'agente di spiegarlo. Un'edizione rifiutata lascia la cartella invariata.

Esegui e leggi il codice di uscita

Le persone che cercano “bash execute script” di solito vogliono una riga: bash greet.sh test. Chiedi all'agente di eseguirlo, e Shell avvia il comando nell'ambiente della tua chat, come WSL, e invia l'output reale e il vero codice di uscita. Espandi la scheda per l'output completo. Poi chiedi la stessa esecuzione senza l'argomento, e dovresti vedere la riga di utilizzo e il codice di uscita 2. Il codice di uscita per le applicazioni CLI è un numero da 0 a 255 che il chiamante legge, e 0 significa successo. Il codice di uscita 127 significa che un comando non è stato trovato e 126 significa che un file non può essere eseguito, quindi questi due numeri indicano un errore di battitura, un programma mancante o un permesso di esecuzione mancante.

Leggi gli argomenti all'interno dello script

read_file mostra lo script e grep trova dove vengono usati $1 e $2, così puoi verificare che ogni argomento abbia un valore predefinito o un messaggio di errore. Ecco come analizzare gli argomenti opzionali: lo script scorre con getopts, e con solo uno o due valori i semplici $1 e ${2:-1} sono sufficienti. Gli alias con argomenti non si comportano come le funzioni, perché un alias sostituisce solo la parola digitata con testo, quindi usa una funzione quando i valori devono andare nel mezzo. Chiedi all'agente di modificare una cosa, ad esempio il valore predefinito del conteggio, e leggi la diff che mostra edit_file. Poi esegui di nuovo lo script e confronta il nuovo codice di uscita con quello vecchio. Plan only può elencare i parametri che lo script comprende senza eseguire nulla.

Esegui lo stesso script su un server di tua proprietà

Gli stessi passaggi funzionano quando l'ambiente di lavoro è un sistema Linux di tua proprietà, raggiunto via SSH. Gli strumenti di file continuano a funzionare nella cartella di lavoro della chat, mentre i comandi Shell vengono eseguiti nell'ambiente che hai scelto, quindi controlla a quale scheda si riferisce. Il comando integrato exec, che le persone cercano come “bash exec script”, sostituisce la shell con un altro comando e non restituisce mai il controllo, quindi nulla dopo di esso viene eseguito e il codice di uscita è quello del nuovo comando. Tieni una copia prima che uno script sposti o elimini file, eseguilo con echo prima come prova a secco, e usa solo macchine a cui sei autorizzato ad amministrare. Leggi la scheda finale prima di chiudere la chat. Quando trasmetti tutti i valori a un altro comando, scrivi "$@" tra virgolette doppie in modo che ogni valore mantenga la sua forma.

Pageferry per Windows

Testa uno script Bash sulla tua macchina

Scarica Pageferry ↗