Bash Ciao mondo


Esempio

Shell interattiva

La shell Bash viene comunemente utilizzata in modo interattivo: consente di immettere e modificare i comandi, quindi li esegue quando si preme il tasto A capo . Molti sistemi operativi basati su Unix e Unix usano Bash come shell predefinita (in particolare Linux e macOS). Il terminale immette automaticamente un processo di shell Bash interattivo all'avvio.

Output Hello World digitando quanto segue:

echo "Hello World"
#> Hello World  # Output Example

Gli appunti

  • Puoi cambiare la shell semplicemente digitando il nome della shell nel terminale. Ad esempio: sh , bash , ecc.

  • echo è un comando builtin di Bash che scrive gli argomenti che riceve sullo standard output. Aggiunge una nuova riga all'output, per impostazione predefinita.


Shell non interattiva

La shell Bash può anche essere eseguita in modo non interattivo da uno script, rendendo la shell non richiede interazione umana. Il comportamento interattivo e il comportamento basato su script dovrebbero essere identici, un aspetto importante della progettazione della shell Bourne di Unix V7 e di Bash transitivamente. Pertanto tutto ciò che può essere fatto sulla linea di comando può essere inserito in un file di script per il riutilizzo.

Segui questi passaggi per creare uno script Hello World :

  1. Crea un nuovo file chiamato hello-world.sh

    touch hello-world.sh
    
  2. Rendi eseguibile lo script eseguendo chmod +x hello-world.sh

  3. Aggiungi questo codice:

    #!/bin/bash
    echo "Hello World"
    

    Linea 1 : la prima riga dello script deve iniziare con la sequenza di caratteri #! , indicato come Shebang 1 . Lo shebang indica al sistema operativo di eseguire /bin/bash , la shell Bash, passandogli il percorso dello script come argomento.

    Ad esempio /bin/bash hello-world.sh

    Linea 2 : utilizza il comando echo per scrivere Hello World sullo standard output.

  1. Esegui lo script hello-world.sh dalla riga di comando usando uno dei seguenti:

    • ./hello-world.sh - più comunemente usato e raccomandato
    • /bin/bash hello-world.sh
    • bash hello-world.sh - assumendo /bin è nel tuo $PATH
    • sh hello-world.sh

Per l'uso di produzione reale, si omettere l'estensione .sh (che è comunque fuorviante, poiché si tratta di uno script Bash, non di uno script sh ) e forse spostare il file in una directory all'interno del PATH modo che sia disponibile a prescindere da la tua attuale directory di lavoro, proprio come un comando di sistema come cat o ls .

Gli errori più comuni includono:

  1. Dimenticando di applicare il permesso di esecuzione sul file, cioè chmod +x hello-world.sh , risultante nell'output di ./hello-world.sh: Permission denied .

  2. Modifica dello script su Windows, che produce caratteri di fine riga errati che Bash non può gestire.

    Un sintomo comune è : command not found dove il ritorno a capo ha forzato il cursore all'inizio della riga, sovrascrivendo il testo prima dei due punti nel messaggio di errore.

    Lo script può essere corretto usando il programma dos2unix .

    Un esempio di utilizzo: dos2unix hello-world.sh

    dos2unix modifica il file in linea.

  3. Usando sh ./hello-world.sh , non ci sh ./hello-world.sh conto che bash e sh sono gusci distinti con caratteristiche distinte (anche se poiché Bash è retrocompatibile, l'errore opposto è innocuo).

    Ad ogni modo, basandosi semplicemente sulla linea shebang dello script è decisamente preferibile scrivere in modo esplicito bash o sh (o python o perl o awk o ruby o ...) prima del nome di ogni script.

    Una linea di shebang comune da usare per rendere il tuo script più portabile è usare #!/usr/bin/env bash invece di codificare un percorso per Bash. In questo modo, /usr/bin/env deve esistere, ma oltre quel punto bash deve solo essere sul tuo PATH . Su molti sistemi, /bin/bash non esiste, e dovresti usare /usr/local/bin/bash o qualche altro percorso assoluto; questo cambiamento evita di dover capire i dettagli di questo.


1 Chiamato anche sha-bang, hashbang, pound-bang, hash-pling.