Python のような適切な言語で書かれた UNIX シェルについて聞いたことがありますか?
7 に答える
- Eshellは、Emacs Lisp の Bash に似たシェルです。
- IPython はシステム シェルとして使用できますが、構文は少し奇妙です (すべての Python と基本的な sh 構造をサポートしています)。
- fishは C で書かれたコアを持っていますが、その機能の多くはそれ自体で実装されています。多くの珍しいシェルとは異なり、ログイン シェルとして使用できます。
- Hotwireは別の言及に値します。その基本的な設計は "Python の PowerShell" のように見えますが、UI でいくつかの巧妙なことも行います。最後のリリースは 2008 年でした。
- Zoidbergは Perl で書かれており、Perl 構文を使用します。見栄えの良いプロジェクトですが、失速したようです。
- Scshをログイン シェルとして使用するのは面倒ですが (ドキュメントのコマンド例:
(run/strings (find "." -name *.c -print))
)、「Scheme 内の Perl」のように見えます。
どう見ても、Python はシェルです。で実行され#!
、インタラクティブに実行できます。os
とパッケージの間にはshutil
、標準の Unix シェルのすべての機能があります。
Python ではシンプルで強力なスクリプトを使用して何でも実行できるため、他のシェルをいじるのに時間を費やす必要はありません。
まあ、間違いなくLispで書かれたシェルであるemacsがあります:)
真剣に、既存のシェル設計を Python などの別の言語で再実装することをお探しですか? それとも、選択した言語に似たシェル言語の新しい実装を探していますか?
現在xonがあります:
http://xon.sh/tutorial.html#running-commands
PyCon ビデオ - https://www.youtube.com/watch?v=uaje5I22kgE
Tclsh は非常に優れています (もちろん、Tcl が好きだと仮定します)。
発疹を試してください。Racketで書かれたシェル言語です。インタラクティブに使いやすい素晴らしい構文を備えています。通常の Racket ファイル内に Rash を埋め込むことも、Rash 内に通常の Racket を埋め込むこともできます。拡張可能で、新しいパイプライン オペレーターを定義できます。現時点ではまだアルファ版の品質ですが、かなりクールです。完全な開示:私が書きました。