Què significa #!/bin/bash i per què cal fer-lo servir

Si esteu fent els vostres primers passos com a programador d'scripts en sistemes operatius Unix, haureu notat quant s'usa la línia de codi #!/bin/bash. Entendre el seu significat i importància et pot ajudar a escriure scripts a Bash més eficients i fiables. En aquesta entrada trobaràs tots els conceptes bàsics que necessites dominar per comprendre'l millor.

En poques paraules, la línia #!/bin/bash, també coneguda com a shabang o hashbang, és un mecanisme que diu al sistema operatiu quin programa ha de fer servir per interpretar el codi que segueix. Ara bé, pot ser una mica confús entendre com funciona o quan cal utilitzar-la. Per això, a continuació en detallem el significat complet a la llum d'altres termes i conceptes relacionats.

Què vol dir #!/bin/bash? Conceptes bàsics

Què significa #!/bin/bash

Per entendre què significa #!/bin/bash, és important repassar alguns conceptes bàsics relacionats amb la programació. Convé començar recordant que Bash és un llenguatge de programació de script àmpliament usat en sistemes operatius tipus Unix, com Linux i macOS. També funciona com un intèrpret de línia d'ordres (Shell) amb què es poden executar scripts i altres fitxers amb l'extensió .sh.

Per tant, quan es fa un script en llenguatge Bash, s'acostuma a començar el fitxer amb la línia #!/bin/bash. Per què? Perquè així se li indica al sistema operatiu l'intèrpret d'ordre que heu d'utilitzar per reconèixer i executar el codi. En aquest cas particular, se us està dient que executeu el fitxer bash amb l'intèrpret d'ordres de bash.

Contingut exclusiu - Clic Aquí  Diferència entre herència simple i herència multiple

La majoria de sistemes operatius Unix utilitzen per defecte el shell bash com a intèrpret de comandament, així que no cal especificar-ho. No obstant això, de vegades l'intèrpret d'ordres predeterminat no està configurat per a bash, cosa que impossibilita l'execució del fitxer. Per això és una bona pràctica utilitzar la línia #!/bin/bash com a punt de partida per a tots els scripts fets a Bash. Així, s'assegura que l'intèrpret d'ordres correcte executi l'script, sense importar l'entorn on s'executi.

Per què se'n diu línia «shabang» o «hashbang»?

significat de #!/bin/bash

Com vam dir a l'inici, la línia #!/bin/bash és coneguda en els ambients Unix com a shabang o hashbang. Aquest terme sorgeix de la unió dels noms dels primers dos símbols (#!): sharp o hashtag (#) i el símbol bang (!). Així doncs, un shabang (she-bang) en informàtica és la seqüència dels caràcters del signe numèric i el signe d'exclamació al començament d'un script de programació. 

En essència, la funció d'un shebang és indicar al sistema operatiu quin intèrpret ha de fer servir per executar un script. Aquesta notació és molt utilitzada en Unix i Linux, on els scripts són essencials per automatitzar tasques i administrar el sistema. Alguns exemples comuns d'aquesta seqüència de caràcters són els següents:

  • #!/bin/bash: Executa l'script usant l'intèrpret d'ordres Bash, amb la ruta /bin/bash.
  • #!/bin/sh: Executa l'script amb l'intèrpret d'ordres Bourne o un altre compatible.
  • #!/usr/perl-T: Executa la seqüència d'ordres usant perl amb l'opció de comprovacions de contaminació.
  • #!/bin/csh-f: Executa l'script usant l'intèrpret d'ordres C o un altre compatible.
  • #!/usr/bin/env python: Executa l'script usant la versió correcta de l'intèrpret de python.
Contingut exclusiu - Clic Aquí  Diferència entre abstracció i encapsulacio

Per què és important utilitzar la línia shebang a l'scripting amb Bash?

Programant a macbook

Quan es creen scripts amb Bash, és molt important escriure el shebang a la primera línia del fitxer. D'aquesta manera, en executar l'script, el sistema operatiu llegeix la primera línia i identifica l'intèrpret. Tot seguit, el sistema carrega el programa bash a la memòria, que alhora llegeix l'script línia per línia, interpretant cada ordre i executant-lo.

Com pots veure, en indicar bash a la línia shebang, t'assegures que l'script sigui executat de la manera correcta. Cal recordar que hi ha altres intèrprets de comandes, com Python i Perl, que tenen sintaxi i funcionalitats diferents. Si no especifiqueu quin utilitzar, el sistema operatiu l'haurà d'endevinar, cosa que retarda o impossibilita l'execució de l'script. De fet, és possible que hàgiu d'especificar manualment l'intèrpret cada vegada que l'script s'hagi d'executar, cosa que podria generar errors.

Contingut exclusiu - Clic Aquí  Diferència entre intèrpret i compilador

A més, afegir la línia #!/bin/bash als scripts amb bash permet que aquests fitxers s'executen sense problemes en diferents sistemes operatius. És clar, perquè això sigui possible, l'intèrpret de comandes Bash ha d'estar prèviament instal·lat al sistema. Linux i macOS el porten instal·lat per defecte en la majoria dels casos. En canvi, si utilitzes el sistema operatiu de Microsoft, hauràs de seguir certs passos per instal·lar Bash a Windows 10 e instal·lar Bash a Windows 11.

Conclusió: La línia #!/bin/bash

En conclusió, podem dir que la línia #!/bin/bash és fonamental per a qualsevol script a Bash. Aquesta notació permet indicar l'intèrpret de comandes que es necessita per executar les línies de codi següents. No oblidis incloure-la sempre al principi de les teves seqüències d'ordres per garantir-ne una correcta lectura i execució.

Deixa un comentari