Saya (benar-benar) pemula untuk pemrograman fungsional (pada kenyataannya hanya bersentuhan dengannya menggunakan python) tetapi tampaknya menjadi pendekatan yang baik untuk beberapa tugas intensif dalam lingkungan shell.
Saya ingin melakukan sesuatu seperti ini:
$ [ git clone $host/$repo for repo in repo1 repo2 repo3 ]
Apakah ada shell Unix dengan fitur semacam ini? Atau mungkin beberapa fitur untuk memungkinkan akses shell yang mudah (perintah, env / vars, readline, dll ...) dari dalam python (idenya adalah menggunakan interpreter interaktif python sebagai pengganti bash).
SUNTING:
Mungkin contoh komparatif akan menjelaskan. Katakanlah saya memiliki daftar yang terdiri dari dir / file :
$ FILES=( build/project.rpm build/project.src.rpm )
Dan saya ingin melakukan tugas yang sangat sederhana: salin semua file ke dist / DAN instal di sistem (itu bagian dari proses build):
Menggunakan bash:
$ cp $ {files [*]} dist /
$ cd dist && rpm -Uvh $ (untuk f di $ {file [*]}; lakukan basename $ f; selesai))
Menggunakan pendekatan "pythonic shell" (hati-hati: ini adalah kode imajiner):
$ cp [os.path.join ('dist', os.path.basename (file)) untuk file dalam FILES] 'dist'
Bisakah Anda melihat perbedaannya? ITULAH yang saya bicarakan. Bagaimana tidak bisa keluar dari shell dengan hal-hal semacam ini? Ini sangat menyusahkan untuk menangani daftar dalam shell, bahkan itu menjadi tugas yang sangat umum: daftar file, daftar PID, daftar segalanya.
Dan poin yang sangat, sangat, penting: menggunakan sintaks / alat / fitur yang semua orang sudah tahu: sh dan python.
IPython tampaknya berada di arah yang baik, tetapi itu membengkak: jika nama var dimulai dengan '$', itu melakukan ini, jika '$$' itu melakukan itu. Sintaksnya bukan "alami", begitu banyak aturan dan "pemecahan masalah" ( [ ln.upper() for ln in !ls ] -> kesalahan sintaksis)