Кто-нибудь слышал о оболочке UNIX, написанной на разумном языке, например Python?
Оболочка UNIX написана на приемлемом языке?
Ответ 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, конечно).
Ответ 6
Теперь есть xon:
http://xon.sh/tutorial.html#running-commands
PyCon video - https://www.youtube.com/watch?v=uaje5I22kgE
Ответ 7
Попробуйте rash. Это язык оболочки, написанный в Racket. Он имеет приятный интерактивный синтаксис. Вы можете вставлять Rash внутри любого нормального файла Racket, а также встраивать обычную Racket внутри Rash. Он расширяемый, и вы можете определить новых операторов трубопровода. На данный момент это качество альфа, но это довольно круто. Полное раскрытие: я написал это.