BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Xonshが好きな理由

シェル言語はインタラクティブな使用に役立ちます。ただし、この最適化には、プログラミング言語として使用することとのトレードオフが伴うことがよくあります。これは、シェルスクリプトを作成するときに感じることがあります。

シェルがよりスケーラブルなプログラミング言語も理解している場合はどうなりますか?言ってやるが、Python?

Xonshに入ります。

Xonshのインストールは、仮想環境を作成するのと同じくらい簡単で、pip install xonsh[ptk,linux]を実行します。 、次にxonshを実行します 。

最初は、Pythonシェルに奇妙なプロンプトがあるのはなぜか疑問に思うかもしれません:

$ 1+1
2

素敵な電卓!

$ print("hello world")
hello world

他の関数を呼び出すこともできます:

$ from antigravity import geohash
$ geohash(37.421542, -122.085589, b'2005-05-26-10458.68')
37.857713 -122.544543

ただし、通常のシェルのように使用できます:

$ echo "hello world"
hello world

組み合わせることもできます!

$ for i in range(3):
.     echo "hello world"
.
hello world
hello world
hello world

Xonshは、Prompt Toolkitを使用して、シェルコマンドとPython式の両方の補完をサポートしています。完了は視覚的に有益であり、可能な完了を示し、帯域内ドロップダウンリストがあります。

また、環境アクセスもサポートしています。 Python型を環境変数に適用するために、シンプルでありながら強力なヒューリスティックを使用します。デフォルトは「文字列」ですが、たとえば、パス変数は自動的にリストされます。

$ '/usr/bin' in $PATH
True

Xonshは、シェルスタイルまたはPythonスタイルのブールショートカット演算子を受け入れます。

$ cat things
foo
$ grep -q foo things and echo "found"
found
$ grep -q bar things && echo "found"
$ grep -q foo things or echo "found"
$ grep -q bar things || echo "found"
found

これは、Pythonキーワードが解釈されることを意味します。有名なドクタースースの本のタイトルを印刷する場合は、キーワードを引用する必要があります。

$ echo green eggs "and" ham
green eggs and ham

そうしないと、私たちは驚きに満ちています:

$ echo green eggs and ham
green eggs
xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
xonsh: subprocess mode: command not found: ham
Did you mean one of the following?
    as:   Command (/usr/bin/as)
    ht:   Command (/usr/bin/ht)
    mag:  Command (/usr/bin/mag)
    ar:   Command (/usr/bin/ar)
    nm:   Command (/usr/bin/nm)

仮想環境は少し注意が必要です。通常の仮想環境は、Bashのような構文に依存するため、機能しません。ただし、Xonshには、voxと呼ばれる独自の仮想環境管理システムが付属しています。 。

vox ~/.virtualenvsで環境を作成、アクティブ化、非アクティブ化できます; virtualenvwrapperを使用した場合 、これが環境があった場所です。

現在アクティブ化されている環境はxに影響を与えないことに注意してください onsh 。アクティブ化された環境からは何もインポートできません。

$ xontrib load vox
$ vox create my-environment                                                    
...
$ vox activate my-environment        
Activated "my-environment".                                                    
$ pip install money                                                            
...
$ python                                                              
...
>>> import money                                                              
>>> money.Money('3.14')                        
$ import money
xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
ModuleNotFoundError: No module named 'money'

最初の行はvoxを有効にします :xontribです 、Xonshのサードパーティ拡張。 xontrib マネージャは、可能なすべてのxontribsを一覧表示できます およびそれらの現在の状態(インストール済み、ロード済み、またはどちらでもない)。

xontribを書くことは可能です PyPiにアップロードするだけです それを利用可能にするため。ただし、xontribに追加することをお勧めします Xonshが事前にそれを知っているようにインデックスを付けます。これにより、たとえば、構成ウィザードがそれを提案できます。

「Pythonを私のシェルにできるか」と疑問に思ったことがあるなら。そうすれば、あなたはpip install xonshにすぎません。 見つけることから離れて。


  1. Windows 10 がダメな理由

    Windows 10 オペレーティング システムは世界的に有名であり、定期的な更新により独自性と信頼性を高めています。すべてのアプリとウィジェットは完璧ではありませんが、それでもかなり便利です。ただし、その設定と機能は改善される可能性があります。 Microsoft は、世界中で約 13 億人の Windows 10 ユーザーのユーザー ベースを楽しんでいます。多くの人が Windows 10 は最悪だと考えています。それは、ポップアップするさまざまな問題のためです。たとえば、ファイル エクスプローラーの破損、VMWare との互換性の問題、データの削除などの問題に直面する可能性があります。ま

  2. Happy 10th Birthday WhatsApp:私たちがあなたを愛している理由はここにあります!

    私たちは皆、テキストメッセージに夢中ですよね?これは、スマートフォンで行う最も楽しいことの 1 つです。どこにいても、旅行中でも人混みに囲まれていても、ほぼすべての状況でメールが常に私たちを救ってくれます。そして、テキストメッセージに関して言えば、WhatsAppは私たちが行きたい唯一の場所です!それはテキストメッセージ以上のものです。写真、ビデオを送信したり、現在地を共有したりできます。 WhatsApp は広く普及しており、世界中の何百万人ものユーザーに愛されています。これは、スマートフォンに必須のテキスト メッセージ アプリのようなものです。 WhatsApp は私たちの最もお気に入り