2008-10-05 22 views
11

¿Alguien ha oído hablar de un intérprete de comandos de UNIX escrito en un lenguaje razonable, como Python?shell UNIX escrito en un lenguaje razonable?

+10

¿Implica que hay algo mal que nosotros c, usted filisteo? – dmckee

+2

O, para ser menos impertinente, ¿qué hace razonable en el contexto y por qué? – dmckee

+2

Solo una pregunta: ¿Python está escrito en un lenguaje "razonable"? – Ingo

Respuesta

23
  • Eshell es una carcasa tipo Bash en Emacs Lisp.
  • IPython puede ser used as a system shell, aunque la sintaxis es un poco rara (admite todas las construcciones de Python plus basic sh).
  • fish tiene un núcleo escrito en C, pero gran parte de su funcionalidad se implementa en sí misma. A diferencia de muchas shells raras, se puede usar como shell de inicio de sesión.
  • Hotwire merece otra mención. Su diseño básico parece ser "PowerShell en Python", pero también hace algunas cosas inteligentes con la interfaz de usuario. La última versión fue en 2008.
  • Zoidberg está escrito en Perl y usa la sintaxis Perl. Un proyecto bonito, lástima que parece haberse estancado.
  • Scsh sería una molestia utilizar como un shell de inicio de sesión (un comando de ejemplo de los documentos: (run/strings (find "." -name *.c -print))), pero parece un buen "Perl in Scheme".
5

Bueno, hay emacs, que es posiblemente una cáscara escrito en Lisp :)

serio, está buscando una reimplementación de un diseño de concha existente en un idioma diferente, tal como Python? ¿O está buscando una nueva implementación de un lenguaje de shell que se parezca a su idioma de elección?

+2

emacs es un sistema operativo. – grawity

10

iPython (Python) y Rush (Ruby) son shells diseñados para idiomas más avanzados. También está Hotwire, que es una especie de emulador de shell/terminal integrado extraño.

+1

Gracias, no sabía sobre Rush. Quizás necesite aprender Ruby (o volver a implementarlo en Python). – skymt

+0

Rush se ve bien, tendré que instalarlo y probarlo. – stimms

3

Tclsh es bastante agradable (suponiendo que te guste Tcl, por supuesto).

+1

Bueno, soy un filisteo sobre Tcl. Puedes quedártelo. – dmckee

6

Desde cualquier punto de vista, Python ES un shell. Se ejecuta con #! y se puede ejecutar de forma interactiva. Entre los paquetes os y shutil tiene todas las características de las cubiertas estándar de Unix.

Dado que puede hacer cualquier cosa en Python con scripts simples y potentes, no necesita perder el tiempo jugando con las otras shells.

0

Trate rash. Es un lenguaje de shell escrito en Racket. Tiene una buena sintaxis amigable interactiva. Puede incrustar Rash dentro de cualquier archivo Racket normal, así como incrustar Racket normal dentro de Rash. Es extensible y puede definir nuevos operadores de canalización. Todavía es calidad alfa en este momento, pero es genial. Divulgación completa: lo escribí.

Cuestiones relacionadas