b'\n_START_ARTICLE_\nBash\n_START_PARAGRAPH_\nBash este un interpretor de comenzi Unix scris ini\xc8\x9bial de c\xc4\x83tre Brian Fox de la Funda\xc8\x9bia pentru Software Liber pentru Proiectul GNU._NEWLINE_Numele este un acronim, un joc de cuvinte \xc8\x99i o descriere. Ca acronim, vine de la Bourne-again shell, referindu-se la obiectivul s\xc4\x83u ca \xc3\xaenlocuitor liber pentru Bourne shell. Ca joc de cuvinte, exprim\xc4\x83 acest obiectiv intr-o form\xc4\x83 ce sun\xc4\x83 similar cu sintagma na\xc8\x99tere din nou. Numele descrie de asemenea realizarea sa, \xc3\xaengem\xc4\x83narea func\xc8\x9biilor din sh, csh \xc8\x99i ksh._NEWLINE_Un defect de securitate denumit Shellshock, ap\xc4\x83rut de la versiunea 1.03, a fost descoperit \xc3\xaen septembrie 2014.\n_START_SECTION_\nIstorie\n_START_PARAGRAPH_\nBrian Fox a \xc3\xaenceput s\xc4\x83 programeze Bash pe 10 ianuarie 1988, dup\xc4\x83 ce Richard Stallman a devenit nemul\xc8\x9bumit din cauza lipsei progresului unui programator anterior.\n_START_SECTION_\nGeneralit\xc4\x83\xc8\x9bi\n_START_PARAGRAPH_\nPentru a scrie scripturi \xc3\xaen Bash este necesar un editor de text. Exemple: Gedit, Nano, MidnightCommander Edit._NEWLINE_Un script \xc3\xaen Bash trebuie obligatoriu s\xc4\x83 aib\xc4\x83 prima linie de cod: #!/bin/bash, deoarece trebuie comunicat sistemului de operare ce interpretor de comenzi se utilizeaz\xc4\x83._NEWLINE_Comentariile \xc3\xaen Bash se fac utiliz\xc3\xa2nd caracterul urmator: #.\n_START_SECTION_\nInforma\xc8\x9bii suplimentare\n_START_PARAGRAPH_\nBash este un limbaj de scripting compatibil cu comenzile de shell. El poate fi executat fie din input-ul standard, fie dintr-un fi\xc8\x99ier. Scripturile Bash sunt \xc3\xaen realitate fi\xc8\x99iere text f\xc4\x83cute executabile, aceste fi\xc8\x99iere put\xc3\xa2nd fi editate cu orice editor de text. Aceste scripturi sunt folosite pentru a executa comenzi simple sau complexe.\n_START_SECTION_\nRulare\n_START_PARAGRAPH_\nPentru a executa aplica\xc8\x9bia creat\xc4\x83 trebuie introdus\xc4\x83 \xc3\xaen consola urmatoarea comand\xc4\x83:_NEWLINE_cd ~/Directorul unde se afla scriptul_NEWLINE_bash nume_script.sh\n_START_SECTION_\nInforma\xc8\x9bii suplimentare\n_START_PARAGRAPH_\nDac\xc4\x83 dori\xc8\x9bi ca aplicatia s\xc4\x83 devina un executabil, atunci introduce\xc8\x9bi:_NEWLINE_chmod +x nume.sh_NEWLINE_Pentru pornire, dublu clic pe pictograma aplica\xc8\x9biei. O alt\xc4\x83 posibilitate este cea de a rula scriptul direct \xc3\xaen consol\xc4\x83:_NEWLINE_./nume.sh\n_START_SECTION_\nExemplu\n_START_PARAGRAPH_\nExemplul \xe2\x80\x9eHello World!\xe2\x80\x9d:_NEWLINE_#!/bin/bash_NEWLINE_clear_NEWLINE_echo "Hello World!"_NEWLINE_Utiliz\xc3\xa2nd comanda echo, avem posibilitatea de a afi\xc8\x99a un text. \xc3\x8en cazul nostru, "Hello World!", \xc3\xaen traducere: "Salut lume!"._NEWLINE_Comanda clear are rolul de a \xc8\x99terge con\xc8\x9binutul ecranului, \xc3\xaenlocuindu-l cu mesajul ales.\n_START_SECTION_\nInforma\xc8\x9bii suplimentare\n_START_PARAGRAPH_\necho accept\xc4\x83 mai mul\xc8\x9bi parametri:_NEWLINE_-e interpreteaz\xc4\x83 caracterul backslash_NEWLINE_-E dezactiveaz\xc4\x83 interpretarea caracterului backslash_NEWLINE_\\a avertizare sonor\xc4\x83_NEWLINE_\\b \xc8\x99terge ultimul caracter afi\xc8\x99at_NEWLINE_\\c \xc8\x99terge \xc8\x99irul de caractere care urmeaz\xc4\x83 aceast\xc4\x83 comand\xc4\x83_NEWLINE_\\n face trecerea la o linie nou\xc4\x83_NEWLINE_\\r are efectul ap\xc4\x83s\xc4\x83rii tastei "Enter"_NEWLINE_\\t afi\xc8\x99eaz\xc4\x83 caracterul "Tab"\n_START_SECTION_\nVariabile\n_START_PARAGRAPH_\nIn Bash exist\xc4\x83 dou\xc4\x83 tipuri de variabile, \xc8\x99i anume:_NEWLINE_Definite de utilizator_NEWLINE_Variabilele sistemului_NEWLINE__NEWLINE_Pentru a vizualiza o list\xc4\x83 cu toate variabilele sistemului, rula\xc8\x9bi \xc3\xaen consola urm\xc4\x83toarea comand\xc4\x83:_NEWLINE__NEWLINE_setCum declar\xc4\x83m variabile in Bash?_NEWLINE__NEWLINE_Exemplu de variabile din sistem:_NEWLINE__NEWLINE_#!/bin/bash_NEWLINE__NEWLINE_echo "Salut $USER"USER este o variabila ce \xc3\xae\xc8\x9bi afi\xc8\x99eaz\xc4\x83 numele de utilizator al contului cu care e\xc8\x99ti autentificat._NEWLINE__NEWLINE_Exemplu de variabil\xc4\x83 definita de utilizator:_NEWLINE__NEWLINE_#!/bin/bash_NEWLINE__NEWLINE_nume=adrian_NEWLINE__NEWLINE_varsta=8_NEWLINE__NEWLINE_echo "Salut $nume, \xc8\x99tiu c\xc4\x83 ai $varsta!"nume respectiv varsta sunt variabilele noastre. Utiliz\xc4\x83nd comanda echo, am afi\xc8\x99at variabilele definite de noi.\n_START_SECTION_\nDeclara\xc8\x9bie de citire\n_START_PARAGRAPH_\nAceast\xc4\x83 declara\xc8\x9bie este folosit\xc4\x83 pentru preluarea datelor de la utilizator prin intermediul tastaturii \xc8\x99i memorarea datelor \xc3\xaen variabile._NEWLINE_Exemplu:_NEWLINE_#!/bin/bash_NEWLINE_read nume_NEWLINE_echo "Salutare $nume, ce faci?"_NEWLINE_Mai precis, read acord\xc4\x83 posibilitatea de a introduce un text de la tastatur\xc4\x83.\n_START_SECTION_\nCondi\xc8\x9bia if\n_START_PARAGRAPH_\nCondi\xc8\x9bia if este o simpl\xc4\x83 compara\xc8\x9bie \xc3\xaentre dou\xc4\x83 valori. Ea este folosit\xc4\x83 pentru luarea deciziilor \xc3\xaen Bash._NEWLINE_Exemplu:_NEWLINE_#!/bin/bash_NEWLINE_if cat $1_NEWLINE_then_NEWLINE_echo "Fisierul $1 a fost gasit si afisat cu succes."_NEWLINE_fi_NEWLINE_Explica\xc8\x9bie: Dac\xc4\x83 comanda cat g\xc4\x83seste fi\xc8\x99ierul "$1" \xc8\x99i \xc3\xael afi\xc8\x99eaz\xc4\x83 pe ecran, \xc3\xaenseamn\xc4\x83 c\xc4\x83 aceast\xc4\x83 comand\xc4\x83 a fost executat\xc4\x83 cu succes \xc8\x99i starea ei de exit este 0. Dac\xc4\x83 \xc3\xaens\xc4\x83 comanda nu este executat\xc4\x83 cu succes, atunci valoarea st\xc4\x83rii de exit returnat\xc4\x83 de aceasta este diferit\xc4\x83 de zero \xc8\x99i declara\xc8\x9bia: echo "Fisierul $1 a fost gasit si afisat cu succes." nu este executat\xc4\x83 de catre shell.'