Bash
Bash | |
Captură de ecral al unei sesiuni Bash | |
Autor inițial | Brian Fox |
---|---|
Dezvoltator | Proiectul GNU Chet Ramey[*][1] |
Versiune inițială | 8 iunie 1989 |
Ultima versiune | 5.2.37[2] () |
Repo | git.savannah.gnu.org/gitweb/?p=bash.git |
Scris în | C |
Sistem de operare |
|
Platformă | GNU |
Disponibil în | Multilingual (gettext) |
Tip | Înveliș Unix, limbaj de comenzi |
Licență | Începând cu 4.0: GPL-3.0-sau-următoare[6] 1.11? până la 3.2: GPL-2.0-sau-următoare[7] |
Prezență online | |
www.gnu.org/software/bash/ | |
Modifică date / text |
Bash este un interpretor de comenzi Unix scris inițial de către Brian Fox de la Fundația pentru Software Liber pentru Proiectul GNU[11][12].
Numele este un acronim, un joc de cuvinte și o descriere. Ca acronim, vine de la Bourne-again shell, referindu-se la obiectivul său ca înlocuitor liber pentru Bourne shell.[13] Ca joc de cuvinte, exprimă acest obiectiv intr-o formă ce sună similar cu sintagma naștere din nou.[14][15] Numele descrie de asemenea realizarea sa, îngemănarea funcțiilor din sh, csh și ksh.[16] Un defect de securitate denumit Shellshock,[17] apărut de la versiunea 1.03, a fost descoperit în septembrie 2014.[18][19]
Istorie
[modificare | modificare sursă]Brian Fox a început să programeze Bash pe 10 ianuarie 1988,[20] după ce Richard Stallman a devenit nemulțumit din cauza lipsei progresului unui programator anterior.[21]
Generalități
[modificare | modificare sursă]Pentru a scrie scripturi în Bash este necesar un editor de text. Exemple: Gedit, Nano, MidnightCommander Edit.
Un script în Bash trebuie obligatoriu să aibă prima linie de cod: #!/bin/bash, deoarece trebuie comunicat sistemului de operare ce interpretor de comenzi se utilizează.
Comentariile în Bash se fac utilizând caracterul urmator: #.
Informații suplimentare
[modificare | modificare sursă]Bash este un limbaj de scripting compatibil cu comenzile de shell. El poate fi executat fie din input-ul standard, fie dintr-un fișier. Scripturile Bash sunt în realitate fișiere text făcute executabile, aceste fișiere putând fi editate cu orice editor de text. Aceste scripturi sunt folosite pentru a executa comenzi simple sau complexe.
Rulare
[modificare | modificare sursă]Pentru a executa aplicația creată trebuie introdusă în consola urmatoarea comandă:
cd ~/Directorul unde se afla scriptul
bash nume_script.sh
Informații suplimentare
[modificare | modificare sursă]Dacă doriți ca aplicatia să devina un executabil, atunci introduceți:
chmod +x nume.sh
Pentru pornire, dublu clic pe pictograma aplicației. O altă posibilitate este cea de a rula scriptul direct în consolă:
./nume.sh
Exemplu
[modificare | modificare sursă]Exemplul „Hello World!”:
#!/bin/bash
clear
echo "Hello World!"
Utilizând comanda echo, avem posibilitatea de a afișa un text. În cazul nostru, "Hello World!", în traducere: "Salut lume!".
Comanda clear are rolul de a șterge conținutul ecranului, înlocuindu-l cu mesajul ales.
Informații suplimentare
[modificare | modificare sursă]echo acceptă mai mulți parametri:
-e interpretează caracterul backslash
-E dezactivează interpretarea caracterului backslash
\a avertizare sonoră
\b șterge ultimul caracter afișat
\c șterge șirul de caractere care urmează această comandă
\n face trecerea la o linie nouă
\r are efectul apăsării tastei "Enter"
\t afișează caracterul "Tab"
Variabile
[modificare | modificare sursă]In Bash există două tipuri de variabile, și anume:
set
Cum declarăm variabile in Bash?
Exemplu de variabile din sistem:
#!/bin/bash
echo "Salut $USER"
USER este o variabila ce îți afișează numele de utilizator al contului cu care ești autentificat.
Exemplu de variabilă definita de utilizator:
#!/bin/bash
nume=adrian
varsta=8
echo "Salut $nume, știu că ai $varsta!"
nume respectiv varsta sunt variabilele noastre. Utilizănd comanda echo, am afișat variabilele definite de noi.
Declarație de citire
[modificare | modificare sursă]Această declarație este folosită pentru preluarea datelor de la utilizator prin intermediul tastaturii și memorarea datelor în variabile.
Exemplu:
#!/bin/bash
read nume
echo "Salutare $nume, ce faci?"
Mai precis, read acordă posibilitatea de a introduce un text de la tastatură.
Condiția if
[modificare | modificare sursă]Condiția if este o simplă comparație între două valori. Ea este folosită pentru luarea deciziilor în Bash.
Exemplu:
#!/bin/bash
if cat $1
then
echo "Fisierul $1 a fost gasit si afisat cu succes."
fi
Explicație: Dacă comanda cat găseste fișierul "$1" și îl afișează pe ecran, înseamnă că această comandă a fost executată cu succes și starea ei de exit este 0. Dacă însă comanda nu este executată cu succes, atunci valoarea stării de exit returnată de aceasta este diferită de zero și declarația: echo "Fisierul $1 a fost gasit si afisat cu succes." nu este executată de catre shell.
Note
[modificare | modificare sursă]- ^ https://www.aosabook.org/en/intro1.html, accesat în Lipsește sau este vid:
|title=
(ajutor) - ^ https://ftp.gnu.org/gnu/bash/ Lipsește sau este vid:
|title=
(ajutor) - ^ „Bash FAQ, version 4.14”. Arhivat din original la . Accesat în .
- ^ „Missing source code - GPL compliance? · Issue #107 · Microsoft/WSL”. GitHub. Arhivat din original la . Accesat în .
- ^ „GNU Bash”. Softpedia. SoftNews. Arhivat din original la . Accesat în .
- ^ GNU Project. „README file”. Arhivat din original la . Accesat în .
Bash is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License (or any later version).
- ^ „bash-1.11”. oldlinux.org. Arhivat din original la . Accesat în .
See test.c for GPL-2.0-or-later
- ^ „bash-1.05.tar”. oldlinux.org.
- ^ „BashFAQ/061 - Greg's Wiki”. mywiki.wooledge.org. Arhivat din original la . Accesat în .
- ^ „Is there a way to download the presumably initial bash source bash-0.99?”. unix.stackexchange.com.
- ^ gnu.org - GNU Bash [1]
- ^ Bash FAQ, version 4.13, for Bash version 4.3 [2]
- ^ C Programming by Al Stevens, Dr. Dobb's Journal, 1 iulie 2001
- ^
Richard Stallman (). „About the GNU Project”. Free Software Foundation. Arhivat din originalul de la . Accesat în .
“Bourne Again Shell” is a play on the name Bourne Shell, which was the usual shell on Unix.
- ^
Gattol, Markus (), Bourne-again Shell, accesat în ,
The name is a pun on the name of the Bourne shell (sh), an early and important Unix shell written by Stephen Bourne and distributed with Version 7 Unix circa 1978, and the concept of being "born again".
- ^
Ian Darwin (). „at&t-free ksh (was: job control is a bug, not a feature)”. Accesat în .
Yup, the gnu project's Born Again Shell ("bash") is an attempt at bashing all the features of sh together with many of those from both csh and ksh.
Parametru necunoscut|newsgroup=
ignorat (ajutor) - ^ Chazelas, Stephane (). „oss-sec mailing list archives”. Seclists.org. Accesat în .
- ^ Leyden, John (). „Patch Bash NOW: 'Shell Shock' bug blasts OS X, Linux systems wide open”. The Register. Accesat în .
- ^ Perlroth, Nicole (). „Security Experts Expect 'Shellshock' Software Bug in Bash to Be Significant”. New York Times. Accesat în .
- ^
Brian Fox (), shell.c, Free Software Foundation,
Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox
- ^
Richard Stallman (). „About the GNU Project”. Free Software Foundation. Arhivat din originalul de la . Accesat în .
Free Software Foundation employees have written and maintained a number of GNU software packages. Two notable ones are the C library and the shell. ... We funded development of these programs because the GNU Project was not just about tools or a development environment. Our goal was a complete operating system, and these programs were needed for that goal.
Legături externe
[modificare | modificare sursă]Wikibooks are o carte despre subiectul: Bash Shell Scripting |