Bash

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Bash
programari
Logotip
Captura de pantalla d'una sessió BASH senzilla a Gentoo GNU / Linux
Captura de pantalla d'una sessió BASH senzilla a Gentoo GNU / Linux
Tipus Petxina
Desenvolupador Chet Ramey
Data de la primera versió 8 de juny de 1989
Última versió 5.1.8 (4 de maig de 2021)
Sistema operatiu Multiplataforma
Llenguatge C.
Llicència GNU GPL v3 +
( llicència gratuïta )
Lloc web www.gnu.org/software/bash/
Bash
llenguatge de programació
Gnu-bash-logo.svg
Autor Chet Ramey , Brian Fox
Data d’origen 1989
Última versió 5.1.8 (4 de maig de 2021)
Ús scripts del sistema
Paradigmes programació procedimental
Escrivint feble
Influenciat per ALGOL 68, shell Bourne , shell C i shell Korn
Implementació de referència
Llicència GNU GPL v3 +
Lloc web www.gnu.org/software/bash/

Bash ( acrònim per b Ourne 1 ell sh guany) és un shell textual de la GNU projecte utilitzat en Unix i Unix-com operen els sistemes , com ara GNU / Linux . A macOS era el shell predeterminat fins a macOS Mojave , mentre que a partir de macOS Catalina encara està present, però ja no és per defecte [1] . Bash també està disponible per als sistemes Microsoft Windows (vegeu, per exemple, Cygwin i msys / msys2 bash).

També anomenat Bourne shell després del seu autor original Stephen Bourne , l'expansió de l'acrònim bash , Bourne again shell , significa literalment un altre shell Bourne , però Bourne torna a tenir la mateixa pronunciació que born again , és a dir, renacer creant la definició final shell renacer .

Descripció

Característiques

Tècnicament, bash és un clon avançat de l'intèrpret d'ordres Unix estàndard ( / bin / sh ). Altres petxines populars i alternatives a bash són la petxina Korn , la petxina C , Zsh i tcsh .

És un intèrpret d’ ordres que permet a l’usuari comunicar-se amb el sistema operatiu mitjançant una sèrie de funcions predefinides o executar programes i scripts.

Bash és capaç d'executar les ordres que se li passen, utilitzant la redirecció d' entrada i sortida per executar diversos programes en cascada en una canalització de programari , passant la sortida de l'ordre anterior com a entrada de l'ordre següent.

A més, proporciona un llenguatge de seqüència d’ordres natiu senzill que us permet realitzar tasques més complexes, no només recopilant una sèrie d’ordres en un script , sinó també mitjançant l’ús de variables , funcions i estructures de control de flux .

Bash i l'estàndard POSIX

El comportament predeterminat de Bash difereix del de l'estàndard POSIX , però es pot aconseguir de quatre maneres:

  • especificant l'opció " --posix " a l'inici, per exemple amb " bash --posix ";
  • invocant-lo amb el nom " sh ", com és el cas de molts sistemes GNU / Linux on " /bin/sh " és un enllaç simbòlic a " /bin/bash ";
  • iniciar-lo després d’establir la POSIXLY_CORRECT entorn POSIXLY_CORRECT [2] amb qualsevol valor;
  • executant-hi l'ordre intern " set -o posix " [3] .

Fitxers llegits a l'inici

En iniciar-se, bash intenta carregar automàticament una sèrie de fitxers:

  • si es tracta d'un intèrpret d' ordres d' inici de sessió , bash intenta carregar:
    1. el fitxer " /etc/profile "
    2. només el primer dels fitxers " .bash_profile ", " .bash_login " i " .profile " que es troba al directori inicial de l'usuari i que sembla estar disponible;
    3. el fitxer " .bashrc " situat al directori inicial de l'usuari;

En sortir d’un intèrpret d’ordres interactiu, bash carrega el fitxer .bash_logout situat a la casa de l’usuari (si està disponible).

  • si es tracta d'un intèrpret d'ordres interactiu sense iniciar sessió, bash intenta carregar només el fitxer " .bashrc " situat al directori inicial de l'usuari;

L'usuari pot modificar els fitxers del directori inicial per personalitzar el seu entorn de treball.

Quan bash s’inicia de manera no interactiva (per exemple, per executar un script d’ intèrpret d’ ordres ) comprova si existeix la variable d’entorn BASH_ENV o ENV i, en aquest cas, carrega el fitxer especificat pel valor de la variable (si bash s’inicia en mode POSIX , només comprova ENV ). Després es procedeix a executar la resta (script o altre).

Exemples explicatius

El següent script us permet crear un arxiu a " /tmp/my-backup.tar.gz " que contingui tota la vostra carpeta personal (tenint en compte que " ~ " representa " /home/ proprionomeutente vostre /tmp/my-backup.tar.gz /home/ proprionomeutente "):

 #! / bin / bash
tar -vzcf /tmp/home.tgz ~

Un altre exemple per als sistemes basats en Debian és poder actualitzar i netejar el sistema amb el següent script:

 #! / bin / bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoclean
sudo apt-get clean

En crear un fitxer amb el contingut anterior en un dels directoris llistats per la $PATH entorn $PATH i assignar-li els permisos d’execució, podeu obtenir una utilitat senzilla i pràctica que es pot utilitzar com qualsevol altre fitxer executable .

Estructures condicionals

Es compara si els fitxers " file_a " i " file_b " són idèntics mitjançant l'ordre cmp ( redirigint la sortida estàndard i l' error estàndard a / dev / null per amagar els seus missatges) i escriu el resultat:

 #! / bin / bash
si cmp fitxer_a fitxer_b & > / dev / null ; llavors 
   echo "Els fitxers a i b són idèntics."
en cas contrari 
   echo "Els fitxers a i b són diferents."
fi

Comproveu si existeix el fitxer " prova.txt " i escriviu-hi un missatge:

 #! / bin / bash
si [ -f test.txt ] ; llavors 
    echo "El fitxer test.txt existeix."
en cas contrari 
    echo "El fitxer test.txt no existeix o no és un fitxer"
fi

Demana una línia d’entrada i mostra un missatge basat en el contingut:

 #! / bin / bash

eco "Escriviu alguna cosa i premeu Retorn:"
llegir la línia

cas " $ line " en
    un )
        eco "Has escrit" one ""
        ;;

    dos | tres ) 
        eco "Heu escrit" dos "o" tres ""
        ;; 
    q * )
        eco "Has escrit alguna cosa que comença per 'q'"
        ;;
    * )
        eco "Has escrit alguna cosa que no sé"
        ;;      
hexac

Nota

  1. ^ Utilitzeu zsh com a intèrpret d'ordres predeterminat al Mac , a l'assistència d'Apple . Consultat el 7 de maig de 2021 .
  2. ^ (EN) Variables de Bash , al Manual de referència de Bash. Consultat el 4 de gener de 2009 .
  3. ^ (EN) The Set Builtin , Bash Reference Manual. Consultat el 2 de gener de 2009 .

Bibliografia

Articles relacionats

Altres projectes

Enllaços externs

Control de l'autoritat GND ( DE ) 4492523-2
Programari lliure Portal de programari lliure : accediu a les entrades de Viquipèdia relacionades amb programari lliure