30 exemples d’escriptura de Bash

30 Bash Script Examples




Els scripts Bash es poden utilitzar per a diversos propòsits, com ara executar una ordre shell, executar diverses ordres juntes, personalitzar tasques administratives, realitzar automatitzacions de tasques, etc. Per tant, el coneixement dels conceptes bàsics de programació bash és important per a tots els usuaris de Linux. Aquest article us ajudarà a obtenir la idea bàsica sobre la programació bash. La majoria de les operacions habituals de bash scripting s’expliquen amb exemples molt senzills aquí.

Els següents temes de programació bash es tracten en aquest article.







  1. Hola món
  2. Echo Command
  3. Comentaris
  4. Comentari de diverses línies
  5. Mentre que Loop
  6. Per a bucle
  7. Obteniu l'entrada d'usuari
  8. Si afirmació
  9. I condició declaració if
  10. O condició declaració if
  11. En cas contrari, condició
  12. Estat de la caixa
  13. Obteniu arguments des de la línia d’ordres
  14. Obteniu arguments de la línia d’ordres amb noms
  15. Combineu dues cadenes en una variable
  16. Obteniu subcadena de cordes
  17. Afegiu 2 números a una variable
  18. Crea una funció
  19. Utilitzeu paràmetres de funció
  20. Passa el valor de retorn de l'script
  21. Feu directori
  22. Feu directori comprovant l'existència
  23. Llegiu un fitxer
  24. Suprimiu un fitxer
  25. Afegeix al fitxer
  26. Comproveu si el fitxer existeix
  27. Exemple d’enviament de correu electrònic
  28. Obtén la data actual de Parse
  29. Espera l'ordre
  30. Comandament del son

Creeu i executeu el primer programa BASH:

Podeu executar script bash des del terminal o executant qualsevol fitxer bash. Executeu l'ordre següent des del terminal per executar una sentència bash molt senzilla. La sortida de l’ordre serà ‘ Hola món '.



$trobo 'Hola món'



Obriu qualsevol editor per crear un fitxer bash. Aquí, nano editor s’utilitza per crear el fitxer i el nom del fitxer es defineix com a ‘ First.sh '





$nanoFirst.sh

Afegiu el següent script bash al fitxer i deseu-lo.

#! / bin / bash
trobo 'Hola món'



Podeu executar el fitxer bash de dues maneres. Una manera és utilitzar l'ordre bash i una altra és establir el permís d'execució per bash i executar el fitxer. Les dues maneres es mostren aquí.

$bashFirst.sh

O,

$chmoda + x First.sh
$./First.sh

Ves a dalt

Ús de l'ordre eco:

Podeu utilitzar l'ordre eco amb diverses opcions. Algunes opcions útils s’esmenten a l’exemple següent. Quan utilitzeu trobo ’Sense cap opció, s’afegeix una nova línia per defecte. '-N' l'opció s'utilitza per imprimir qualsevol text sense línia nova i '-I' L'opció s'utilitza per eliminar els caràcters de barra invertida de la sortida. Creeu un fitxer bash nou amb un nom: echo_example.sh ’I afegiu el següent script.

#! / bin / bash
trobo 'Impressió de text amb línia nova'
trobo -n 'Impressió de text sense línia nova'
trobo -I ' nS'està eliminant tbarra invertida tpersonatges n'

Executeu el fitxer amb l'ordre bash.

$bashecho_example.sh

Ves a dalt

Ús del comentari:

'#' El símbol s'utilitza per afegir comentaris d'una sola línia a l'script bash. Creeu un fitxer nou anomenat ' comentari_exemple.sh ' i afegiu el següent script amb un comentari d'una sola línia.

#! / bin / bash

# Afegiu dos valors numèrics
((suma=25+35))

#Imprimeix el resultat
trobo $ suma

Executeu el fitxer amb l'ordre bash.

$bashcomment_example.sh

Ves a dalt

Ús de comentaris de diverses línies:

Podeu utilitzar comentaris de diverses línies en bash de diverses maneres. A l'exemple següent es mostra una forma senzilla. Creeu un nou bash anomenat, 'Comentari-multilínia.sh' i afegiu el següent script. Aquí, ':' i ' els símbols s’utilitzen per afegir comentaris de diverses línies a l’escriptura bash. Aquest següent script calcularà el quadrat de 5.

#! / bin / bash
:'
Es calcula el següent script
el valor quadrat del nombre, 5.
'

((àrea=5*5))
trobo $ àrea

Executeu el fitxer amb l'ordre bash.

$bashmultiline-comment.sh

Podeu consultar el següent enllaç per obtenir més informació sobre l’ús del comentari bash.

https://linuxhint.com/bash_comments/

Ves a dalt

Ús del bucle While:

Creeu un fitxer bash amb el nom, 'Mentre_exemple.sh', conèixer l'ús de mentre bucle. A l'exemple, mentre bucle iterarà per 5 vegades. El valor de comptar variable augmentarà en 1 a cada pas. Quan el valor de comptar la variable serà 5 llavors la mentre el bucle finalitzarà.

#! / bin / bash
vàlid=cert
comptar=1
mentre [ $ vàlid ]
fer
trobo $ recompte
si [ $ recompte -eq 5 ];
llavors
trencar
ser
((comptar ++))
fet

Executeu el fitxer amb l'ordre bash.

$bashwhile_example.sh

Podeu consultar el següent enllaç per obtenir més informació sobre l’ús del bucle while.

https://linuxhint.com/bash-while-loop-examples/

Ves a dalt

Ús de Loop:

El bàsic per La declaració de bucle es mostra a l'exemple següent. Creeu un fitxer anomenat ' for_example.sh 'I afegiu el següent script mitjançant per bucle. Aquí, per bucle iterarà per 10 vegades i imprimeix tots els valors de la variable, comptador en línia única.

#! / bin / bash
per (( comptador=10; comptador>0; comptador--))
fer
trobo -n '$ comptador'
fet
printf ' n'

Executeu el fitxer amb l'ordre bash.

$bashfor_example.sh

Podeu utilitzar el bucle per a diferents propòsits i maneres al vostre script bash. Podeu consultar el següent enllaç per obtenir més informació sobre l’ús de for loop.

https://linuxhint.com/bash-for-loop-examples/

Ves a dalt

Obteniu l'entrada de l'usuari:

' llegir ’S’utilitza per obtenir l’entrada de l’usuari a bash. Creeu un fitxer anomenat ' user_input.sh 'I afegiu el següent script per obtenir informació de l'usuari. Aquí es prendrà un valor de cadena de l'usuari i mostrarà el valor combinant un altre valor de cadena.

#! / bin / bash
trobo 'Introdueixi el seu nom'
llegirnom
trobo 'Benvingut$ noma LinuxHint '

Executeu el fitxer amb l'ordre bash.

$bashuser_input.sh

Podeu consultar l’enllaç següent per obtenir més informació sobre l’ús de l’entrada de l’usuari.

https://linuxhint.com/bash-script-user-input/

Ves a dalt

Utilitzant la sentència if:

Podeu utilitzar condició if amb condicions simples o múltiples. El bloc inicial i final d'aquesta afirmació es defineix per 'si' i 'ser' . Creeu un fitxer anomenat ' simple_if.sh ’Amb el següent script per saber-ne l’ús si declaració en bash. Aquí, 10 s'assigna a la variable, n . si el valor de $ n és inferior a 10, llavors la sortida serà És un número d'un dígit , en cas contrari la sortida serà És un número de dos dígits . A tall de comparació, '-Lt' s'utilitza aquí. Per a la comparació, també podeu utilitzar-lo '-Eq' per igualtat , 'nascut' per no la igualtat i '-Gt' per més gran que en guió bash.

#! / bin / bash
n=10
si [ $ n -lt 10 ];
llavors
trobo 'És un número d'un dígit'
en cas contrari
trobo 'És un número de dos dígits'
ser

Executeu el fitxer amb l'ordre bash.

$bashsimple_if.sh

Ves a dalt

Utilitzant sentència if amb lògica AND:

Es poden utilitzar diferents tipus de condicions lògiques a la sentència if amb dues o més condicions. Com es poden definir diverses condicions a la sentència if mitjançant I la lògica es mostra a l'exemple següent. '&&' s’utilitza per aplicar I lògica de si declaració. Creeu un fitxer anomenat 'If_with_AND.sh' per comprovar el codi següent. Aquí, el valor de nom d'usuari i contrasenya les variables s’extreuran de l’usuari i es compararan amb administrador 'I' secret ’. Si els dos valors coincideixen, la sortida serà usuari vàlid , en cas contrari la sortida serà usuari no vàlid .

! /sóc/bash

trobo 'Introduïu el nom d'usuari'
llegirnom d'usuari
trobo 'Introduir la contrasenya'
llegircontrasenya

si [[ ( $ nom d'usuari=='administrador' && $ contrasenya=='secret' ) ]];llavors
trobo 'usuari vàlid'
en cas contrari
trobo 'usuari no vàlid'
ser

Executeu el fitxer amb l'ordre bash.

$bashif_with_AND.sh

Ves a dalt

Utilitzant sentència if amb lògica OR:

' || ’S’utilitza per definir O lògica a si condició. Creeu un fitxer anomenat 'If_with_OR.sh' amb el següent codi per comprovar l 'ús de O lògica de si declaració. Aquí, el valor de n s’extreurà de l’usuari. Si el valor és igual a 15 o bé 45 llavors la sortida serà Has guanyat la partida , en cas contrari la sortida serà Has perdut la partida .

#! / bin / bash

trobo 'Introduïu qualsevol número'
llegirn

si [[ ( $ n -eq 15 || $ n -eq 45 ) ]]
llavors
trobo 'Has guanyat la partida'
en cas contrari
trobo 'Has perdut el joc'
ser

Executeu el fitxer amb l'ordre bash.

$bashif_with_OR.sh

Ves a dalt

Utilitzant la sentència else if:

L'ús de si no la condició és poc diferent en bash que en altres llenguatges de programació. ' elif ’S’utilitza per definir si no estat en bash. Creeu un fitxer anomenat ' elseif_example.sh 'I afegiu el següent script per comprovar com si no es defineix en script bash.

#! / bin / bash

trobo 'Introduïu el número de la sort'
llegirn

si [ $ n -eq 101 ];
llavors
trobo 'Tens el primer premi'
elif [ $ n -eq 510 ];
llavors
trobo 'Tens el 2n premi'
elif [ $ n -eq 999 ];
llavors
trobo 'Tens el 3r premi'

en cas contrari
trobo 'Ho sento, prova per la propera vegada'
ser

Executeu el fitxer amb l'ordre bash.

$bashelseif_example.sh

Ves a dalt

Ús de la declaració de cas:

Caixa La declaració s'utilitza com a alternativa de if-elseif-else declaració. El bloc inicial i final d’aquesta sentència està definit per ‘ Caixa 'I' esac ’. Creeu un fitxer nou anomenat ' case_example.sh ’I afegiu el següent script. La sortida del següent script serà la mateixa que l'anterior si no exemple.

#! / bin / bash

trobo 'Introduïu el número de la sort'
llegirn
Caixa $ n dins
101)
trobo trobo 'Tens el primer premi' ;;
510)
trobo 'Tens el 2n premi' ;;
999)
trobo 'Tens el 3r premi' ;;
*)
trobo 'Ho sento, prova per la propera vegada' ;;
esac

Executeu el fitxer amb l'ordre bash.

$bashcase_example.sh

Ves a dalt

Obteniu arguments des de la línia d'ordres:

L'escriptura Bash pot llegir l'entrada de l'argument de la línia d'ordres com un altre llenguatge de programació. Per exemple, $ 1 i $ 2 Les variables s’utilitzen per llegir els arguments de primera i segona línia de comandes. Creeu un fitxer anomenat command_line.sh i afegiu el següent script. Dos valors d'argument llegits pel següent script i imprimeixen el nombre total d'arguments i els valors d'argumentació com a sortida.

#! / bin / bash
trobo 'Arguments totals: $ #'
trobo 'Primer argument = $ 1'
trobo '2n argument = 2 $'

Executeu el fitxer amb l'ordre bash.

$bashCommand_line.sh Consell Linux

Podeu consultar l’enllaç següent per obtenir més informació sobre l’ús de l’argument de línia d’ordres.

https://linuxhint.com/command_line_arguments_bash_script/

Ves a dalt

Obteniu arguments de la línia d’ordres amb noms:

El següent script mostra com podeu llegir els arguments de la línia d’ordres amb noms. Creeu un fitxer anomenat ' command_line_names.sh ' i afegiu el codi següent. Aquí, dos arguments, X i I són llegits per aquest script i imprimeixen la suma de X i Y.

#! / bin / bash
perenfadatdins '[email protected]'
fer
índex= $(trobo $ arg | tallar -f1 -d=)
hores= $(trobo $ arg | tallar -f2 -d=)
Caixa $ índex dins
X) x=$ hores;;

I) i=$ hores;;

*)
esac
fet
((resultat= X + i))
trobo 'X + Y =$ resultat'

Executeu el fitxer amb l'ordre bash i amb dos arguments de línia d'ordres.

$bashnom_línia_comandaX=45 I=30

Ves a dalt

Combina variables de cadena:

Podeu combinar fàcilment variables de cadena a bash. Creeu un fitxer anomenat string_combine.sh i afegiu el següent script per comprovar com podeu combinar variables de cadena en bash col·locant variables o utilitzant '+' operador.

#! / bin / bash

cadena1='Linux'
cadena2='Pista'
trobo '$ string1$ string2'
cadena3=$ string1+$ string2
cadena3 + ='és un bon lloc de blocs tutorial'
trobo $ string3

Executeu el fitxer amb l'ordre bash.

$bashstring_combine.sh

Ves a dalt

Obteniu la subcadena de la cadena:

Com altres llenguatges de programació, bash no té cap funció integrada per reduir el valor de cap dada de cadena. Però podeu fer la tasca de subcadena d'una altra manera a bash que es mostra al següent script. Per provar l'script, creeu un fitxer anomenat ' substring_example.sh ’Amb el codi següent. Aquí, el valor, 6 indica el punt d'inici des d'on s'iniciarà la subcadena i 5 indica la longitud de la subcadena.

#! / bin / bash
Str='Apreneu Linux amb LinuxHint'
subStr=$ {Str: 6: 5}
trobo $ subStr

Executeu el fitxer amb l'ordre bash.

$bashsubstring_example.sh

Ves a dalt

Afegiu dos números:

Podeu fer les operacions aritmètiques en bash de diferents maneres. El següent script mostra com podeu afegir dos nombres enters en bash mitjançant dobles claudàtors. Creeu un fitxer anomenat ' add_numbers.sh ’Amb el codi següent. Es prendran dos valors enters de l’usuari i s’imprimirà el resultat de l’addició.

#! / bin / bash
trobo 'Introduïu el primer número'
llegirx
trobo 'Introduïu el segon número'
llegiri
(( suma= X + i))
trobo 'El resultat de la suma =$ suma'

Executeu el fitxer amb l'ordre bash.

$bashadd_numbers.sh

Podeu consultar el següent enllaç per obtenir més informació sobre l'aritmètica bash.

https://linuxhint.com/bash_arithmetic_operations/

Ves a dalt

Funció de creació:

El següent script mostra com podeu crear una funció senzilla i cridar-la. Creeu un fitxer anomenat ' function_example.sh ’I afegiu el codi següent. Podeu trucar a qualsevol funció només pel nom sense utilitzar cap mènsil a l’escriptura bash.

#! / bin / bash
funcióF1()
{
trobo 'M'agrada la programació bash'
}

F1

Executeu el fitxer amb l'ordre bash.

$bashfunction_example.sh

Ves a dalt

Crea una funció amb paràmetres:

Bash no pot declarar paràmetres o arguments de funció en el moment de declarar la funció. Però podeu utilitzar paràmetres en funció utilitzant altres variables. Si es passen dos valors en el moment de la crida a la funció, s'utilitzen les variables $ 1 i $ 2 per llegir els valors. Creeu un fitxer anomenat ' funció | _parameter.sh ’I afegiu el codi següent. Aquí, la funció ' Rectangle_rearea ' calcularà l'àrea d'un rectangle en funció dels valors dels paràmetres.

#! / bin / bash

Àrea_Rectangle() {
àrea= $(($ 1 * $ 2))
trobo 'L'àrea és:$ àrea'
}

Àrea_Rectangle10 20

Executeu el fitxer amb l'ordre bash.

$bashfunction_parameter.sh

Ves a dalt

Passar el valor de retorn de la funció:

La funció Bash pot passar tant valors numèrics com de cadenes. A l'exemple següent es mostra com podeu passar un valor de cadena des de la funció. Creeu un fitxer anomenat ' function_return.sh ’I afegiu el codi següent. La funció, salutació () retorna un valor de cadena a la variable, hores que s’imprimeix més tard combinant-se amb altres cordes.

#! / bin / bash
funciósalutació() {

pàg='Hola,$ nom'
trobo $ str

}

trobo 'Introdueixi el seu nom'
llegirnom

hores= $(salutació)
trobo 'El valor de retorn de la funció és$ hores'

Executeu el fitxer amb l'ordre bash.

$bashfunction_return.sh

Podeu consultar el següent enllaç per obtenir més informació sobre l’ús de la funció bash.

https://linuxhint.com/return-string-bash-functions/

Ves a dalt

Crea directori:

Bash utilitza ' mkdir ’Per crear un directori nou. Creeu un fitxer anomenat ' make_directory.sh 'I afegiu el codi següent per obtenir un nom de directori nou de l'usuari. Si el nom del directori no existeix a la ubicació actual, es crearà el directori, en cas contrari el programa mostrarà un error.

#! / bin / bash
trobo 'Introduïu el nom del directori'
llegirnewdir
`mkdir $ newdir`

Executeu el fitxer amb l'ordre bash.

$bashmake_directory.sh

Ves a dalt

Feu directori comprovant l'existència:

Si voleu comprovar l’existència de directori a la ubicació actual abans d’executar el fitxer ‘ mkdir ’, Podeu utilitzar el codi següent. ‘-D ’Opció s’utilitza per provar que existeix o no un directori concret. Creeu un fitxer anomenat ' directory_exist.sh ' i afegiu el codi següent per crear un directori comprovant l'existència.

#! / bin / bash
trobo 'Introduïu el nom del directori'
llegirndr
si [ -d '$ ndir' ]
llavors
trobo 'El directori existeix'
en cas contrari
`mkdir $ ndir`
trobo 'Directori creat'
ser

Executeu el fitxer amb l'ordre bash.

$bashdirectory_exist.sh

Podeu consultar el següent enllaç per obtenir més informació sobre la creació de directoris.

https://linuxhint.com/bash_mkdir_not_existent_path/

Ves a dalt

Llegiu un fitxer:

Podeu llegir qualsevol fitxer línia per línia a bash mitjançant el bucle. Creeu un fitxer anomenat ' read_file.sh I afegiu el codi següent per llegir un fitxer existent anomenat ' book.txt '.

#! / bin / bash
dossier='book.txt'
mentre llegirlínia;fer
trobo $ línia
fet < $ fitxer

Executeu el fitxer amb l'ordre bash.

$bashread_file.sh

Executeu l'ordre següent per comprovar el contingut original de ' book.txt ' dossier.

$gatbook.txt

Podeu consultar el següent enllaç per conèixer les diferents maneres de llegir el fitxer.

https://linuxhint.com/read_file_line_by_line_bash/

Ves a dalt

Suprimir un fitxer:

' rm ’S’utilitza a bash per eliminar qualsevol fitxer. Creeu un fitxer anomenat ' delete_file.sh ’Amb el codi següent per treure el nom de fitxer de l’usuari i eliminar-lo. Aquí, '-I' L’opció s’utilitza per obtenir permís de l’usuari abans d’eliminar el fitxer.

#! / bin / bash
trobo 'Introduïu el nom del fitxer per eliminar'
llegirfn
rm -i $ fn

Executeu el fitxer amb l'ordre bash.

$ls
$bashdelete_file.sh
$ls

Ves a dalt

Afegeix al fitxer:

Utilitzant les dades noves es poden afegir a qualsevol fitxer existent '>>' operador a bash. Creeu un fitxer anomenat ‘Append_file.sh 'I afegiu el codi següent per afegir contingut nou al final del fitxer. Aquí, ‘ Aprendre Laravel 5 'S'afegirà a la de' book.txt ' després d'executar l'script.

#! / bin / bash

trobo 'Abans d'afegir el fitxer'
gatbook.txt

trobo 'Aprenent Laravel 5'>>book.txt
trobo 'Després d'afegir el fitxer'
gatbook.txt

Executeu el fitxer amb l'ordre bash.

$bashappend_file.sh

Ves a dalt

Comproveu si el fitxer existeix:

Podeu comprovar l'existència d'un fitxer a bash utilitzant '-I' o bé '-F' opció. '-F' L'opció s'utilitza en el següent script per provar l'existència del fitxer. Creeu un fitxer anomenat ' file_exist.sh ’I afegiu el codi següent. Aquí, el nom del fitxer passarà des de la línia d’ordres.

#! / bin / bash
nom de l'arxiu=$ 1
si [ -f '$ nom de fitxer' ];llavors
trobo 'El fitxer existeix'
en cas contrari
trobo 'L'arxiu no existeix'
ser

Executeu les ordres següents per comprovar l'existència del fitxer. Aquí, book.txt el fitxer existeix i book2.txt no existeix a la ubicació actual.

$ls
$bashfile_exist.sh book.txt
$bashfile_exist.sh book2.txt

Ves a dalt

Envia un correu electrònic:

Podeu enviar correus electrònics mitjançant ‘ correu electrònic 'O' Envia un correu ' comandament. Abans d’utilitzar aquestes ordres, heu d’instal·lar tots els paquets necessaris. Creeu un fitxer anomenat ' mail_example.sh ’I afegiu el codi següent per enviar el correu electrònic.

#! / bin / bash
Destinatari= administrador@example.com
Assignatura= Salutació
Missatge= Benvingut al nostre lloc
`correu electrònic-s $ Assumpte $ Destinatari <<< $ Missatge`

Executeu el fitxer amb l'ordre bash.

$bashmail_example.sh

Ves a dalt

Obtén la data actual de Parse:

Podeu obtenir el valor de data i hora actual del sistema amb ` data `comando. Totes les parts del valor de data i hora es poden analitzar mitjançant ' Y ',' m ',' d ',' H ',' M ' i ' S ' . Creeu un fitxer nou anomenat ' data_parse.sh ' i afegiu el codi següent per separar els valors de dia, mes, any, hora, minut i segon.

#! / bin / bash
Curs=`data+%I`
Mes=`data+%m`
Dia=`data+%d`
Hores=`data+%H`
Minut=`data+%M`
Segon=`data+%S`
trobo `data`
trobo 'La data actual és:$ Dia-$ Mes-$ Any'
trobo 'L'hora actual és:$ Hora:$ Minut:$ Segon'

Executeu el fitxer amb l'ordre bash.

$bashdate_parse.sh

Ves a dalt

Espera l'ordre:

espera és un comandament integrat de Linux que espera completar qualsevol procés en execució. espera L'ordre s'utilitza amb un identificador de procés o un identificador de treball concret. Si no es proporciona cap identificador de procés o identificador de treball amb l'ordre wait, esperarà que es completin tots els processos secundaris actuals i retornarà l'estat de sortida. Creeu un fitxer anomenat ' wait_example.sh ' i afegiu el següent script.

#! / bin / bash
trobo 'Ordre d'espera' &
id_procés=$!
espera $ process_id
trobo 'Heu sortit amb l'estat $?'

Executeu el fitxer amb l'ordre bash.

$bashwait_example.sh

Podeu consultar el següent enllaç per obtenir més informació sobre l'ordre d'espera.

Espereu l'ordre a Linux

Ves a dalt

Ordre de son:

Quan vulgueu aturar l'execució de qualsevol ordre durant un període de temps específic, podeu utilitzar-lo dormir comandament. Podeu definir l'import del retard fins a segons (s), minuts (m), hores (h) i dies (d). Creeu un fitxer anomenat 'Dormir_exemple.sh' i afegiu el següent script. Aquest script esperarà 5 segons després d’executar-se.

#! / bin / bash

troboEsperaper 5segons
dormir 5
troboCompletat

Executeu el fitxer amb l'ordre bash.

$bashsleep_example.sh

Podeu consultar el següent enllaç per obtenir més informació sobre l’ordre sleep.

https://linuxhint.com/sleep_command_linux/

Ves a dalt

Espero que, després de llegir aquest article, tingueu un concepte bàsic sobre el llenguatge d’escriptura bash i els pugueu aplicar en funció dels vostres requisits.