Qual è un buon esempio di script bash da studiare per apprendere buone convenzioni di codifica?


12

Ho imparato le basi della programmazione in bash. Mi piacerebbe studiare alcuni esempi di script bash in modo da poter imparare buone abitudini per gli script bash.

In particolare, sono interessato ad esempi di script bash che mostrano:

  • come elaborare gli argomenti e attivare la funzionalità condizionale
  • come verificare la presenza di errori di input
  • come eseguire il completamento del comando
  • come organizzare uno script bash in funzioni, comandi e così via
  • come presentare i messaggi di aiuto

Ad esempio, ho imparato molto da autorandr su github . Esistono altri script o repository di script simili in cui posso conoscere le convenzioni di scripting bash?


1
Una nota su dove non guardare: molti script di inizializzazione del sistema impacchettati dalla maggior parte delle distribuzioni all'interno /etco ovunque sono pieni di cattive pratiche di scripting della shell, quindi dovresti evitare di usarli come esempi.
jw013,

Non so perché questo abbia un downvote, +1
n0pe

1
Esistono "buone" convenzioni di codifica per bash? Per come la vedo io, quando usi bash in genere sei più interessato a farlo svolgere (estremamente limitato) nel modo più efficiente e portabile possibile. Se vuoi un codice elegante e pulito, usi un vero linguaggio di programmazione.
Shadur,

@Shadur: ci sono troppe lingue, quindi tutti hanno ragione a minimizzare l'uso di queste, come nella scrittura di un'app GUI di Gtk3 che usa collegamenti bash e bash puri.
dotbit

Risposte:


6

Spina senza vergogna, ma hai chiesto esempi:

E se vuoi un buon riferimento, usa il Wiki di Greg . È un giardino senza fronzoli leggibile di caos e bellezza, con un approccio pragmatico per fare le cose nel modo migliore. Basta essere molto, molto attenti a indagare correttamente prima di chiedere qualsiasi cosa su #bash - Possono essere feroci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.