Оболочка UNIX написана на приемлемом языке?

Кто-нибудь слышал о оболочке UNIX, написанной на разумном языке, например Python?

Ответ 1

  • Eshell является Bash -подобной оболочкой в ​​Emacs Lisp.
  • IPython может быть используется как системная оболочка, хотя синтаксис немного странный (поддерживающий все Python плюс базовые sh-конструкции).
  • fish имеет ядро, написанное на C, но большая часть его функций реализована сама по себе. В отличие от многих редких оболочек, его можно использовать в качестве вашей оболочки входа.
  • Hotwire заслуживает другого упоминания. Его базовый дизайн, похоже, "PowerShell в Python", но он также делает некоторые умные вещи с пользовательским интерфейсом. Последний выпуск был в 2008 году.
  • Zoidberg написан на Perl и использует синтаксис Perl. Красивый проект, позор, похоже, застопорился.
  • Scsh было бы больно использовать в качестве оболочки входа (пример команды из docs: (run/strings (find "." -name *.c -print))), но это выглядит как хороший "Perl in Scheme".

Ответ 2

iPython (Python) и Rush (Ruby) - это оболочки, предназначенные для более продвинутых языков. Также есть Hotwire, который является своего рода странным интегрированным эмулятором оболочки/терминала.

Ответ 3

По всей видимости, Python - это оболочка. Он работает с #!, и он может работать в интерактивном режиме. Между пакетами os и shutil у вас есть все возможности стандартных оболочек Unix.

Поскольку вы можете делать что-либо в Python с помощью простых мощных скриптов, вам не нужно тратить время на общение с другими оболочками.

Ответ 4

Ну, там emacs, который, возможно, является оболочкой, написанной в lisp:)

Серьезно, однако, вы ищете повторную реализацию существующего дизайна оболочки на другом языке, таком как Python? Или вы ищете новую реализацию языка оболочки, которая похожа на ваш язык выбора?

Ответ 5

Tclsh довольно приятный (предполагая, что вам нравится Tcl, конечно).

Ответ 7

Попробуйте rash. Это язык оболочки, написанный в Racket. Он имеет приятный интерактивный синтаксис. Вы можете вставлять Rash внутри любого нормального файла Racket, а также встраивать обычную Racket внутри Rash. Он расширяемый, и вы можете определить новых операторов трубопровода. На данный момент это качество альфа, но это довольно круто. Полное раскрытие: я написал это.