Scripturile Bash pot fi utilizate în diverse scopuri, cum ar fi executarea unei comenzi shell, rularea mai multor comenzi împreună, personalizarea sarcinilor administrative, efectuarea automatizării sarcinilor etc. Deci, cunoașterea elementelor de bază ale programării bash este importantă pentru fiecare utilizator Linux. Acest articol vă va ajuta să obțineți ideea de bază despre programarea bash. Majoritatea operațiunilor obișnuite ale scripturilor bash sunt explicate cu exemple foarte simple aici.
Următoarele subiecte de programare bash sunt tratate în acest articol.
- Salut Lume
- Comanda Echo
- Comentarii
- Comentariu pe mai multe linii
- În timp ce Loop
- Pentru Loop
- Obțineți introducerea de utilizator
- Dacă afirmație
- Și condiția if statement
- Sau condiția if statement
- Altfel dacă și altceva condiție
- Starea cazului
- Obțineți argumente din linia de comandă
- Obțineți argumente din linia de comandă cu nume
- Combinați două șiruri într-o variabilă
- Obține Substring de șiruri
- Adăugați 2 numere într-o variabilă
- Creați o funcție
- Utilizați parametrii funcției
- Treceți valoarea returnată din script
- Creați director
- Creați director verificând existența
- Citiți un fișier
- Ștergeți un fișier
- Atașați la fișier
- Testați dacă fișierul există
- Trimiteți un exemplu de e-mail
- Obțineți data curentă de analiză
- Așteptați comanda
- Comandă Sleep
Creați și executați primul program BASH:
Puteți rula script bash de la terminal sau executând orice fișier bash. Rulați următoarea comandă de la terminal pentru a executa o instrucțiune bash foarte simplă. Ieșirea comenzii va fi „ Salut Lume '.
$aruncat 'Salut Lume'
Deschideți orice editor pentru a crea un fișier bash. Aici, nano editorul este folosit pentru a crea fișierul și numele fișierului este setat ca „ First.sh '
$nanoÎn primul rând
Adăugați următorul script bash în fișier și salvați fișierul.
#! / bin / basharuncat 'Salut Lume'
Puteți rula fișierul bash în două moduri. O modalitate este prin utilizarea comenzii bash și alta este prin setarea permisiunii de execuție pentru a bash fișierul și a rula fișierul. Ambele moduri sunt prezentate aici.
$bashÎn primul rândSau,
$chmoda + x First.sh$./În primul rând
Utilizarea comenzii ecou:
Puteți utiliza comanda echo cu diverse opțiuni. Unele opțiuni utile sunt menționate în exemplul următor. Când folosești „ aruncat 'Fără nicio opțiune, apoi se adaugă o linie nouă în mod implicit. „-N” opțiunea este utilizată pentru a imprima orice text fără linie nouă și '-Și' opțiunea este utilizată pentru a elimina caracterele bare oblice din ieșire. Creați un nou fișier bash cu un nume, „ echo_example.sh ’Și adăugați următorul script.
#! / bin / basharuncat „Tipărirea textului cu linie nouă”
aruncat -n „Tipărirea textului fără linie nouă”
aruncat -Și ' nSe elimină tbackslash tpersonaje n'
Rulați fișierul cu comanda bash.
$bashecho_example.sh
Utilizarea comentariului:
„#” simbolul este folosit pentru a adăuga un singur comentariu de linie în scriptul bash. Creați un fișier nou numit „ comentariu_exemplu.sh ” și adăugați următorul script cu comentariu pe o singură linie.
#! / bin / bash# Adăugați două valori numerice
((sumă=25+35))
#Printați rezultatul
aruncat suma $
Rulați fișierul cu comanda bash.
$bashcomentariu_exemplu.sh
Utilizarea comentariului pe mai multe linii:
Puteți utiliza comentariile pe mai multe linii în bash în diferite moduri. O modalitate simplă este prezentată în exemplul următor. Creați un nou bash numit, „Multiline-comment.sh” și adăugați următorul script. Aici, „:” și ' simbolurile sunt folosite pentru a adăuga comentarii pe mai multe linii în scriptul bash. Acest script următor va calcula pătratul de 5.
#! / bin / bash:'
Următorul script se calculează
valoarea pătrată a numărului, 5.
'
((zonă=5*5))
aruncat zona $
Rulați fișierul cu comanda bash.
$bashcomentariu multiliniu.sh
Puteți verifica următorul link pentru a afla mai multe despre utilizarea comentariului bash.
https://linuxhint.com/bash_comments/
Utilizarea While Loop:
Creați un fișier bash cu numele, „While_example.sh”, să cunoască folosirea in timp ce buclă. În exemplu, in timp ce bucla va itera pentru 5 ori. Valoarea a numara variabila va crește cu 1 în fiecare pas. Când valoarea de numara variabila va 5 apoi in timp ce bucla se va termina.
#! / bin / bashvalabil=Adevărat
numara=1
in timp ce [ $ valabil ]
do
aruncat $ conta
dacă [ $ conta -eq 5 ];
atunci
pauză
fi
((numără ++))
Terminat
Rulați fișierul cu comanda bash.
$bashwhile_example.sh
Puteți verifica următorul link pentru a afla mai multe despre utilizarea buclei while.
https://linuxhint.com/bash-while-loop-examples/
Utilizarea pentru buclă:
Baza pentru declarația buclei este prezentată în exemplul următor. Creați un fișier numit „ for_example.sh 'Și adăugați următorul script folosind pentru buclă. Aici, pentru bucla va itera pentru 10 ori și tipăriți toate valorile variabilei, tejghea într-o singură linie.
#! / bin / bashpentru (( tejghea=10; tejghea>0; tejghea--))
do
aruncat -n '$ contor'
Terminat
printf ' n'
Rulați fișierul cu comanda bash.
$bashfor_example.sh
Puteți utiliza bucla pentru diferite scopuri și moduri în scriptul bash. Puteți verifica linkul următor pentru a afla mai multe despre utilizarea buclei for.
https://linuxhint.com/bash-for-loop-examples/
Obțineți introducerea utilizatorului:
' citit 'Comanda este utilizată pentru a prelua datele de la utilizator în bash. Creați un fișier numit „ user_input.sh 'Și adăugați următorul script pentru a primi informații de la utilizator. Aici, o valoare de șir va fi preluată de la utilizator și va afișa valoarea prin combinarea altei valori de șir.
#! / bin / basharuncat 'Introdu numele tau'
cititNume
aruncat 'Bine ati venit$ numela LinuxHint '
Rulați fișierul cu comanda bash.
$bashuser_input.sh
Puteți verifica următorul link pentru a afla mai multe despre utilizarea datelor introduse de utilizator.
https://linuxhint.com/bash-script-user-input/
Folosind declarația if:
Puteți utiliza condiția if cu condiții unice sau multiple. Blocul inițial și final al acestei afirmații este definit de 'dacă' și ‘fi’ . Creați un fișier numit „ simplu_if.sh 'Cu următorul script pentru a cunoaște utilizarea dacă declarație în bash. Aici, 10 este atribuit variabilei, n . dacă valoarea $ n este mai mic de 10, atunci ieșirea va fi Este un număr dintr-o cifră , altfel rezultatul va fi Este un număr din două cifre . Pentru comparație, „-Lt” este folosit aici. Pentru comparație, puteți utiliza și „-Eq” pentru egalitate , '-născut' pentru nu egalitatea și „-Gt” pentru mai mare ca în script bash.
#! / bin / bashn=10
dacă [ $ n -Lt 10 ];
atunci
aruncat „Este un număr dintr-o cifră”
altceva
aruncat „Este un număr din două cifre”
fi
Rulați fișierul cu comanda bash.
$bashsimplu_if.sh
Folosind declarația if cu logică ȘI:
Diferite tipuri de condiții logice pot fi utilizate în instrucțiunea if cu două sau mai multe condiții. Cum puteți defini mai multe condiții în instrucțiunea if folosind ȘI logica este prezentată în exemplul următor. „&&” se folosește pentru a aplica ȘI logica de dacă afirmație. Creați un fișier numit „If_with_AND.sh” pentru a verifica următorul cod. Aici, valoarea nume de utilizator și parola variabilele vor fi preluate de la utilizator și comparate cu „ admin ' și ' secret '. Dacă ambele valori se potrivesc, rezultatul va fi utilizator valid , altfel rezultatul va fi Utilizator incorect .
! /a.m/basharuncat 'Introduceti numele de utilizator'
cititnume de utilizator
aruncat 'Introdu parola'
cititparola
dacă [[ ( $ nume de utilizator==„administrator” && $ parola=='secret' ) ]];atunci
aruncat „utilizator valid”
altceva
aruncat 'Utilizator incorect'
fi
Rulați fișierul cu comanda bash.
$bashdacă_cu_ȘI.sh
Folosind instrucțiunea if cu logică OR:
' || 'Este folosit pentru a defini SAU logică în dacă condiție. Creați un fișier numit „If_with_OR.sh” cu următorul cod pentru a verifica utilizarea SAU logica de dacă afirmație. Aici, valoarea n va fi preluat de la utilizator. Dacă valoarea este egală cu cincisprezece sau Patru cinci atunci ieșirea va fi Ai câștigat jocul , altfel rezultatul va fi Ai pierdut jocul .
#! / bin / basharuncat „Introduceți orice număr”
cititn
dacă [[ ( $ n -eq cincisprezece || $ n -eq Patru cinci ) ]]
atunci
aruncat „Ai câștigat jocul”
altceva
aruncat „Ai pierdut jocul”
fi
Rulați fișierul cu comanda bash.
$bashdacă_cu_OR.sh
Folosind instruciunea else if:
Utilizarea altfel dacă condiția este puțin diferită în bash decât în alte limbaje de programare. ‘ elif 'Este folosit pentru a defini altfel dacă stare în bash. Creați un fișier numit „ elseif_example.sh 'Și adăugați următorul script pentru a verifica cum altfel dacă este definit în scriptul bash.
#! / bin / basharuncat „Introduceți numărul norocos”
cititn
dacă [ $ n -eq 101 ];
atunci
aruncat „Ai primit premiul 1”
elif [ $ n -eq 510 ];
atunci
aruncat „Ai primit premiul 2”
elif [ $ n -eq 999 ];
atunci
aruncat „Ai primit premiul 3”
altceva
aruncat „Îmi pare rău, încearcă pentru data viitoare”
fi
Rulați fișierul cu comanda bash.
$bashelseif_example.sh
Utilizarea declarației de caz:
Caz declarația este utilizată ca alternativă a if-elseif-else afirmație. Blocul de început și de sfârșit al acestei afirmații este definit de „ caz ' și ' esac '. Creați un fișier nou numit „ case_example.sh ’Și adăugați următorul script. Rezultatul următorului script va fi același cu cel anterior altfel dacă exemplu.
#! / bin / basharuncat „Introduceți numărul norocos”
cititn
caz $ n în
101)
aruncat aruncat „Ai primit premiul 1” ;;
510)
aruncat „Ai primit premiul 2” ;;
999)
aruncat „Ai primit premiul 3” ;;
*)
aruncat „Îmi pare rău, încearcă pentru data viitoare” ;;
esac
Rulați fișierul cu comanda bash.
$bashcase_example.sh
Obțineți argumente din linia de comandă:
Scriptul Bash poate citi intrările din argumentul liniei de comandă ca și alte limbaje de programare. De exemplu, 1 $ și 2 USD variabile sunt utilizate pentru a citi primul și al doilea argument de linie de comandă. Creați un fișier numit command_line.sh și adăugați următorul script. Două valori de argument citite de următorul script și imprimă numărul total de argumente și valorile argumentului ca ieșire.
#! / bin / basharuncat „Total argumente: $ #”
aruncat „Primul argument = 1 USD”
aruncat „Al doilea argument = 2 USD”
Rulați fișierul cu comanda bash.
$bashcommand_line.sh Linux Sugestie
Puteți verifica următorul link pentru a afla mai multe despre utilizarea argumentului liniei de comandă.
https://linuxhint.com/command_line_arguments_bash_script/
Obțineți argumente din linia de comandă cu nume:
Cum puteți citi argumentele din linia de comandă cu nume este prezentat în următorul script. Creați un fișier numit „ command_line_names.sh ' și adăugați următorul cod. Aici, două argumente, X și ȘI sunt citite de acest script și imprimă suma lui X și Y.
#! / bin / bashpentrufuriosîn „[email protected]”
do
index= $(aruncat $ arg | a tăia -f1 -d=)
ore= $(aruncat $ arg | a tăia -f2 -d=)
caz $ index în
X) X=$ ore;;
ȘI) și=$ ore;;
*)
esac
Terminat
((rezultat= x + y))
aruncat 'X + Y =$ rezultat'
Rulați fișierul cu comanda bash și cu două argumente de linie de comandă.
$bashcommand_line_namesX=Patru cinci ȘI=30
Combinați variabilele șirului:
Puteți combina cu ușurință variabilele șirului în bash. Creați un fișier numit string_combine.sh și adăugați următorul script pentru a verifica cum puteți combina variabilele șirului în bash plasând variabile împreună sau folosind „+” operator.
#! / bin / bashșirul 1=„Linux”
șir2='Aluzie'
aruncat '$ string1$ string2'
șirul 3=$ string1+$ string2
șir3 + =„este un bun site de blog tutorial”
aruncat $ string3
Rulați fișierul cu comanda bash.
$bashstring_combine.sh
Obțineți șir de șiruri:
Ca și alte limbaje de programare, bash nu are nicio funcție încorporată pentru a reduce valoarea din orice șir de date. Dar puteți efectua sarcina de sub șir într-un alt mod în bash, care este prezentat în scriptul următor. Pentru a testa scriptul, creați un fișier numit „ substring_example.sh ’Cu următorul cod. Aici, valoarea, 6 indică punctul de plecare de unde va începe șirul și 5 indică lungimea șirului.
#! / bin / bashStr=„Aflați Linux din LinuxHint”
subStr=${Str:6:5}
aruncat $ subStr
Rulați fișierul cu comanda bash.
$bashsubstring_example.sh
Adăugați două numere:
Puteți face operațiuni aritmetice în bash în diferite moduri. Cum puteți adăuga două numere întregi în bash folosind paranteze duble este prezentat în următorul script. Creați un fișier numit „ add_numbers.sh ’Cu următorul cod. Două valori întregi vor fi luate de la utilizator și vor fi tipărite rezultatul adăugării.
#! / bin / basharuncat „Introduceți primul număr”
cititX
aruncat „Introduceți al doilea număr”
cititși
(( sumă= x + y))
aruncat 'Rezultatul adunării =suma $'
Rulați fișierul cu comanda bash.
$bashadd_numbers.sh
Puteți verifica următorul link pentru a afla mai multe despre aritmetica bash.
https://linuxhint.com/bash_arithmetic_operations/
Funcție de creare:
Modul în care puteți crea o funcție simplă și să apelați funcția este prezentat în următorul script. Creați un fișier numit „ function_example.sh ’Și adăugați următorul cod. Puteți apela orice funcție numai după nume, fără a utiliza orice paranteză în scriptul bash.
#! / bin / bashfuncţieF1()
{
aruncat „Îmi place programarea bash”
}
F1
Rulați fișierul cu comanda bash.
$bashfunction_example.sh
Creați funcția cu parametri:
Bash nu poate declara parametrii funcției sau argumentele în momentul declarării funcției. Dar puteți utiliza parametrii în funcție utilizând altă variabilă. Dacă sunt trecute două valori în momentul apelării funcției, atunci se utilizează variabile $ 1 și $ 2 pentru citirea valorilor. Creați un fișier numit „ function | _parameter.sh ’Și adăugați următorul cod. Aici, funcția „ Rectangle_Area ' va calcula aria unui dreptunghi pe baza valorilor parametrilor.
#! / bin / bashRectangle_Area() {
zonă= $((1 $ * 2 USD))
aruncat „Zona este:zona $'
}
Rectangle_Area10 douăzeci
Rulați fișierul cu comanda bash.
$bashfunction_parameter.sh
Treceți valoarea returnată din funcție:
Funcția Bash poate transmite atât valori numerice, cât și valori de șir. Cum puteți trece o valoare șir din funcție este prezentat în exemplul următor. Creați un fișier numit „ function_return.sh ’Și adăugați următorul cod. Functia, Salut() returnează o valoare șir în variabilă, ore care tipărește mai târziu prin combinarea cu alte șiruri.
#! / bin / bashfuncţieSalut() {
str='Buna ziua,$ nume'
aruncat $str
}
aruncat 'Introdu numele tau'
cititNume
ore= $(Salut)
aruncat 'Valoarea returnată a funcției este$ ore'
Rulați fișierul cu comanda bash.
$bashfunction_return.sh
Puteți verifica următorul link pentru a afla mai multe despre utilizarea funcției bash.
https://linuxhint.com/return-string-bash-functions/
Creați directorul:
Bash folosește „ mkdir ’Pentru a crea un nou director. Creați un fișier numit „ make_directory.sh 'Și adăugați următorul cod pentru a prelua un nou nume de director de la utilizator. Dacă numele directorului nu există în locația curentă, atunci acesta va crea directorul, altfel programul va afișa erori.
#! / bin / basharuncat „Introduceți numele directorului”
cititnewdir
„mkdir $ newdir„
Rulați fișierul cu comanda bash.
$bashmake_directory.sh
Creați director verificând existența:
Dacă doriți să verificați existența directorului în locația curentă înainte de a executa „ mkdir ’, Atunci puteți utiliza următorul cod. ‘-D 'Opțiunea este utilizată pentru a testa un anumit director există sau nu. Creați un fișier numit „ director_exist.sh ” și adăugați următorul cod pentru a crea un director verificând existența.
#! / bin / basharuncat „Introduceți numele directorului”
cititndr
dacă [ -d '$ ndir' ]
atunci
aruncat „Director există”
altceva
„mkdir $ ndir„
aruncat „Director creat”
fi
Rulați fișierul cu comanda bash.
$bashdirector_exist.sh
Puteți verifica următorul link pentru a afla mai multe despre crearea de directoare.
https://linuxhint.com/bash_mkdir_not_existent_path/
Citiți un fișier:
Puteți citi orice fișier linie cu linie în bash folosind bucla. Creați un fișier numit „ read_file.sh Și adăugați următorul cod pentru a citi un fișier existent numit „ book.txt '.
#! / bin / bashfişier=„book.txt”
in timp ce cititlinia;do
aruncat $ linie
Terminat < $ fișier
Rulați fișierul cu comanda bash.
$bashread_file.shRulați următoarea comandă pentru a verifica conținutul original al „ book.txt ’Fișier.
$pisicăbook.txt
Puteți verifica următorul link pentru a afla diferitele moduri de a citi fișierul.
https://linuxhint.com/read_file_line_by_line_bash/
Ștergeți un fișier:
' rm 'Comanda este utilizată în bash pentru a elimina orice fișier. Creați un fișier numit „ delete_file.sh 'Cu următorul cod pentru a prelua numele fișierului de la utilizator și a-l elimina. Aici, „-I” opțiunea este utilizată pentru a obține permisiunea utilizatorului înainte de a elimina fișierul.
#! / bin / basharuncat „Introduceți numele fișierului pentru a-l elimina”
cititfn
rm -i $ fn
Rulați fișierul cu comanda bash.
$eu sunt$bashdelete_file.sh
$eu sunt
Atașați la fișier:
Datele noi pot fi adăugate în orice fișier existent folosind „>>” operator în bash. Creați un fișier numit ‘Append_file.sh ’Și adăugați următorul cod pentru a adăuga conținut nou la sfârșitul fișierului. Aici, ' Învățarea Laravel 5 „Va fi adăugat la„ book.txt ” după executarea scriptului.
#! / bin / basharuncat „Înainte de a adăuga fișierul”
pisicăbook.txt
aruncat „Învățarea Laravel 5”>>book.txt
aruncat „După adăugarea fișierului”
pisicăbook.txt
Rulați fișierul cu comanda bash.
$bashappend_file.sh
Testați dacă fișierul există:
Puteți verifica existența fișierului în bash folosind '-Și' sau „-F” opțiune. „-F” opțiunea este utilizată în următorul script pentru a testa existența fișierului. Creați un fișier numit „ file_exist.sh ’Și adăugați următorul cod. Aici, numele fișierului va trece de pe linia de comandă.
#! / bin / bashnume de fișier=1 $
dacă [ -f '$ nume de fișier' ];atunci
aruncat 'Fisierul exista'
altceva
aruncat 'Fisierul nu exista'
fi
Rulați următoarele comenzi pentru a verifica existența fișierului. Aici, book.txt fișier există și book2.txt nu există în locația curentă.
$eu sunt$bashfile_exist.sh book.txt
$bashfile_exist.sh book2.txt
Trimite email:
Puteți trimite e-mail utilizând „ Poștă 'Sau' sendmail ’Comanda. Înainte de a utiliza aceste comenzi, trebuie să instalați toate pachetele necesare. Creați un fișier numit „ mail_example.sh ’Și adăugați următorul cod pentru a trimite e-mailul.
#! / bin / bashDestinatar= admin@example.com
Subiect= Salut
Mesaj= Bun venit pe site-ul nostru
„Poștă-s $ Subiect $ Destinatar <<< $ Mesaj„
Rulați fișierul cu comanda bash.
$bashmail_example.sh
Obțineți data curentă de analiză:
Puteți obține data și ora curente ale sistemului folosind ` Data `comanda. Fiecare parte a valorii datei și orei poate fi analizată folosind „ Y ',' m ',' d ',' H ',' M ' și ' S ’ . Creați un fișier nou numit „ date_parse.sh ” și adăugați următorul cod pentru a separa valorile de zi, lună, an, oră, minut și secundă.
#! / bin / bashAn=„Data+%ȘI„
Lună=„Data+%m„
Zi=„Data+%d„
Ora=„Data+%H„
Minut=„Data+%M„
Al doilea=„Data+%S„
aruncat „Data„
aruncat „Data curentă este:$ Ziua-$ Luna-$ An'
aruncat „Ora curentă este:$ Oră:$ Minut:$ Al doilea'
Rulați fișierul cu comanda bash.
$bashdate_parse.sh
Așteptați comanda:
aștepta este o comandă încorporată a Linux care așteaptă finalizarea oricărui proces de rulare. aștepta comanda este utilizată cu un anumit id de proces sau un ID de job. Dacă nu este dat niciun ID de proces sau ID de job cu comanda de așteptare, acesta va aștepta finalizarea tuturor proceselor secundare curente și va returna starea de ieșire. Creați un fișier numit „ wait_example.sh ” și adăugați următorul script.
#! / bin / basharuncat „Așteptați comanda” &
proces_id=$!
aștepta $ proces_id
aruncat „Ați ieșit cu starea $?”
Rulați fișierul cu comanda bash.
$bashwait_example.sh
Puteți verifica următorul link pentru a afla mai multe despre comanda de așteptare.
Comandă de somn:
Când doriți să întrerupeți executarea oricărei comenzi pentru o anumită perioadă de timp, atunci puteți utiliza dormi comanda. Puteți seta valoarea întârzierii până la secunde (s), minute (m), ore (h) și zile (d). Creați un fișier numit „Sleep_example.sh” și adăugați următorul script. Acest script va aștepta 5 secunde după rulare.
#! / bin / basharuncatAșteptapentru 5secunde
dormi 5
aruncatEfectuat
Rulați fișierul cu comanda bash.
$bashsomn_exemplu.sh
Puteți verifica următorul link pentru a afla mai multe despre comanda de somn.
https://linuxhint.com/sleep_command_linux/
Sper că, după ce ați citit acest articol, ați primit un concept de bază despre limbajul de scriptare bash și le veți putea aplica pe baza cerințelor dvs.