Sono (davvero) un principiante della programmazione funzionale (in effetti ho avuto contatti solo con python) ma sembra essere un buon approccio per alcune attività ad alta intensità di elenco in un ambiente shell.
Mi piacerebbe fare qualcosa del genere:
$ [ git clone $host/$repo for repo in repo1 repo2 repo3 ]
Esiste una shell Unix con questo tipo di funzionalità? O forse alcune funzionalità per consentire un facile accesso alla shell (comandi, env / vars, readline, ecc ...) dall'interno di Python (l'idea è di usare l'interprete interattivo di Python in sostituzione di bash).
MODIFICARE:
Forse un esempio comparativo chiarirebbe. Diciamo che ho un elenco composto da dir / file :
$ FILES=( build/project.rpm build/project.src.rpm )
E voglio fare un compito davvero semplice: copiare tutti i file in dist / E installarlo nel sistema (fa parte di un processo di compilazione):
Usando bash:
$ cp $ {files [*]} dist / $ cd dist && rpm -Uvh $ (per f in $ {files [*]}; fai basename $ f; fatto))
Usando un approccio "shell pitonica" (attenzione: questo è un codice immaginario):
$ cp [os.path.join ('dist', os.path.basename (file)) per il file in FILES] 'dist'
Riesci a vedere la differenza? È quello di cui sto parlando. Come non uscire ancora da una shell con questo tipo di roba integrata? Gestire gli elenchi in shell è una vera seccatura, anche se è un compito così comune: elenco di file, elenco di PID, elenco di tutto.
E un punto davvero molto importante: usare la sintassi / strumenti / funzionalità che tutti già conoscono: sh e python.
IPython sembra avere una buona direzione, ma è gonfio: se var name inizia con '$', lo fa, se '$$' lo fa. La sua sintassi non è "naturale", quindi molte regole e "soluzioni alternative" ( [ ln.upper() for ln in !ls ]
-> errore di sintassi)