Si treballes amb Bash habitualment, saps que certes variables internes marquen la diferència entre un script funcional i un de robust. A Q2BSTUDIO, com a empresa de desenvolupament de programari i tecnologia, construïm aplicacions a mida, integrem intel·ligència artificial, despleguem infraestructura cloud a AWS i Azure, i auditem sistemes amb ciberseguretat avançada. En tots aquests projectes, els scripts Bash són el pegament que automatitza processos i garanteix consistència. Per això vull compartir les set variables que utilitzo en pràcticament cada un dels meus scripts. Conèixer-les t'ajudarà a escriure codi més fiable, depurable i professional.
1. $0 – El nom del scriptAquesta variable conté la ruta o el nom amb què es va invocar el script. L'uso per mostrar missatges d'ús personalitzats (echo 'Ús: $0 [opcions]'), per registrar en logs quin script s'està executant, i per referenciar el mateix fitxer en operacions d'autoreparació. En entorns d'automatització que desenvolupem, $0 permet identificar exactament quin pas va fallar en una canonada de desplegament.
2. $? – Codi de sortida de l'última comandaDesprés d'executar qualsevol comanda, $? guarda el seu estat de sortida: 0 significa èxit, qualsevol altre valor indica error. Aquesta variable és essencial per al control de flux. En els nostres scripts de programari a mida, validem cada pas amb if [ $? -ne 0 ]; then per, per exemple, revertir canvis al núvol si una actualització falla. També l'empram en agents IA que processen dades de forma seqüencial.
3. $# – Nombre d'argumentsSaber quants arguments va rebre el script evita errors ximples. En un procés d'ingesta de dades per a Business Intelligence, per exemple, exigim almenys dos paràmetres: l'origen i el destí. if [ $# -lt 2 ]; then imprimeix l'ús i surt. Aquesta validació és senzilla però estalvia temps en entorns productius.
4. $@ – Tots els arguments com a paraules separadesQuan necessites passar tots els arguments a una altra comanda respectant les cometes, $@ és l'opció correcta (a diferència de $*). El fem servir en scripts wrapper que invoquen eines de ciberseguretat com escàners de vulnerabilitats: nmap $@. D'aquesta manera, mantenim la flexibilitat sense perdre la integritat dels paràmetres.
5. $EUID – ID d'usuari efectiuAquesta variable mostra l'UID sota el qual realment s'executa el procés. Si llances un script amb sudo, $EUID valdrà 0 (root), mentre que $UID conserva l'usuari original. L'uso per comprovar privilegis abans d'accedir a recursos protegits del sistema, com instal·lar paquets o modificar /etc. En desplegaments cloud amb AWS o Azure, és habitual veure if [ '$EUID' -ne 0 ]; then per forçar elevació de permisos.
6. $UID – ID d'usuari realTot i que menys utilitzat directament, $UID complementa a $EUID. Quan un script necessita saber qui el va invocar (no qui l'executa efectivament), $UID dóna aquesta resposta. En eines d'auditoria que desenvolupem per a clients, registrem tant $UID com $EUID per traçar la identitat en logs de ciberseguretat.
7. $BASH_VERSION – Versió de BashNo tots els sistemes tenen la mateixa versió de Bash. Amb $BASH_VERSION podem comprovar si l'intèrpret suporta característiques modernes com arrays associatius o expansions avançades. En projectes d'IA que requereixen manipulació de grans volums de dades, ens assegurem que la versió sigui 4.0 o superior. Aquesta comprovació prèvia evita sorpreses en entorns legacy.
Aquestes set variables són la base de gairebé qualsevol script ben escrit. Dominar-les et permetrà construir automatitzacions més segures, depurar errors amb precisió i mantenir un codi portable. A Q2BSTUDIO les apliquem diàriament en el desenvolupament d'aplicacions a mida, integracions amb Power BI, agents d'intel·ligència artificial, i desplegaments al núvol. Si necessites un equip que entengui la importància dels detalls tècnics, no dubtis a contactar-nos.





