[Bash script] Felhantering vid anrop av underscript?

Permalänk
Medlem

[Bash script] Felhantering vid anrop av underscript?

Jag håller på med ett simpelt script som går igenom en underkatalog med ytterligare script och kollar ifall dom har en viss funktion och har dom den så anropas den funktionen och det scriptets kod utförs.

nu till problemet, det sekundära scriptet har ingen som helst felhantering (vill inte ha det här heller) finns det något sätt att få main scriptet att fånga felen? använder trap o flera andra olika saker får att fånga fel, men min "clean_up" funktion körs inte om det blir något error i underscriptet.

lite kod

#!/bin/bash set -e ... for Package in `seq $Line_Count` do read Package ... source $ScriptDir/$Package ... [[ "$(grep '^build\(\)' $ScriptDir/$Package ]] && build() if [ ! "$?" = "0" ]; then do_exit "build() failed" fi done

använder det för att automatisera kompilering av diverse paket så därför vill jag endast skriva in mina build kommandon i build funktionen precis som man gör när man kompilerar paket manuellt.

Så finns det något bra sätt att fånga error i underscriptet? som det är nu så abryter den bara, min do_exit funktion som raderar lite temp filer körs inte.

Visa signatur

Desktop: Ryzen 9 3950x | RTX 2060 | 16Gb RAM | 512Gb + 256Gb SSD
NAS: HP Microserver Gen8 | 8GB Ram | 3x2Tb ZFS | FreeNAS
SRV: HP ML350p Gen8 | 64GB Ram | 2x E5-2630v2 | ESXI