Come posso mantenere le funzioni di bash senza le nuove righe sfuggite?

2

Ho funzioni come questa:

foo() {
    /some/script \
      --opt1=val1 \
      --opt2=val2 \
      --opt3=val3
 }

Questo è fragile se tolgo l'ultima opzione o aggiungo qualsiasi nuova opzione su qualsiasi riga. I guasti sono relativamente silenziosi, quando re-source la funzione, il che significa che ho eseguito questi errori senza accorgercene.

Uso queste funzioni modificando .projectrc e re-sourcing. Alcuni di questi errori portano alla stampa di errori, ma sono relativamente difficili da notare. Qualsiasi discrepanza tra type <fcn> e il testo in .projectrc dovrebbe essere un problema.

I newline sfuggiti sono fragili e causano problemi quindi mi chiedo una buona alternativa che mi permetta di scrivere una funzione non tutta su una linea lunga senza spezzare così prontamente.

    
posta djechlin 11.05.2018 - 04:07
fonte

1 risposta

1

Questo non ha nulla a che fare in particolare con le funzioni - qualsiasi tipo di programmazione della shell che coinvolge lunghe linee di comando è suscettibile.

Una pratica utile è usare set -e nei tuoi script, in modo che gli errori non solo sputino un avvertimento facilmente mancato a STDOUT, ma interrompi lo script . Un altro è aggiungere \ alla fine di tutte le linee in un lungo elenco di opzioni, anche l'ultimo - non fa male e rende un po 'più facile modificare l'elenco delle opzioni in un secondo momento.

    
risposta data 11.05.2018 - 08:10
fonte

Leggi altre domande sui tag