Una delle funzioni meno propagandate di Bash (e di molte altre shell) è la possibilità di scrivere i propri file personali e avere la shell li esegue come built-in.
Diciamo che si scrive il caricabile 'su' .. e si desidera lavorare in questo modo:
on node 123 run some command
on class nodes run some command
on all nodes run some command
... ecc ..
È possibile seguire semplici esempi su come scrivere un caricabile, quindi attivare come bash costruito in via abilitare -f/path/to/caricabili loadable_name
quindi, nel nostro caso, abilitare -f/opt/bash/loadables/a su
... nella tua base e ce l'hai
Quindi, se vuoi che bash interpreti in modo nativo la tua nuova lingua spiffy, dovresti scrivere un loadable chiamato 'use' o 'switch_to', quindi modificare il parser per caricare una grammatica/runtime diversa se una certa variabile d'ambiente era impostato.
cioè .:
#/bin/bash
switch_to my-way-cool-language
funkyfunc Zippy(int p) [[
jive.wassup(p) ]]
La maggior parte delle persone sono non intenzione di voler incidere il loro guscio, però. Volevo sottolineare che esistono strutture per prendere Bash e farlo nel modo che preferisci, senza fare troppo con il core code.
Vedere/path-to-bash-source/examples/loadables, potresti essere in grado di farlo volare dove lavori, dal momento che stai ancora utilizzando Bash.
fonte
2009-06-01 08:08:18
Quali caratteristiche ti manca in bash vs sono disponibili in altre shell che consideri innovative? Ancora più importante, vedi caratteristiche che pensi possano aiutare a fare ciò per cui è stato scritto? Per esempio. dal mio punto di vista bash è un'interfaccia a riga di comando per accedere alle risorse del sistema operativo, da quel punto di vista quale funzionalità ti manca? – stefanB
Forse è un modo di rimanere all'interno della filosofia Unix di usare piccoli strumenti che fanno cose specifiche molto bene (al contrario di grandi strumenti che fanno tutto male). –
questo è un barattolo di vermi .. aprilo con cura .. – sybreon