PowerShell に相当する Unix 版はありますか?

PowerShell に相当する Unix 版はありますか?

複雑なシェルコマンドでテキスト出力を解析するのはいつも面倒だと感じていました。AWK基本的には、構造化データをテキストに変換し、テキストを再度解析して構造化データに戻します。

パワーシェルは、テキストだけでなく、シェル コマンド間で入力されたオブジェクトをパイプできるようにすることで、この問題を回避する Windows シェルです。

PowerShell のように、テキストベースではなくオブジェクトベースの Unix シェルはありますか?

答え1

いいえ、その逆です。spoon^H^H^H構造化データはありません。テキストのみです。

Unix 哲学の大部分は、テキストを出力し、テキストを入力として受け入れるという考えに基づいています。"Unixプログラミングの芸術」には、これに関する素晴らしい説明があります。

誤解しないでください。あなたの言いたいことは理解していますし、何を言おうとしているのかもわかっています。Ruby や Python の対話型インタープリターなどはシェルとして使用できますが、基本的なタスクには Bash ほど使いやすくありません。たとえば、ディレクトリを変更してみてください。

また、シェル内でオブジェクトを使用するだけでは十分ではありません。シェルこれをサポートしていないと、Unix では困ってしまいます。grep、awk、sed など、すべての標準 Unix テキスト操作ツールを変更する必要があります。

数年前にこのようなものを作ろうとした試みがあったと思うのですが、名前は思い出せませんし、長い間そのことについて聞いていません。おそらく成功しないでしょう。

答え2

実は、パシュPowerShell (Mono 上) を実装することを目指していますが、行き詰まっているようです。

答え3

PowerShellは2016年にオープンソースになりました。それ以来、ますますマルチプラットフォーム化が進んでいます。ソースコードは以下から入手できます。GitHub多くの UNIX 系システム用のインストール パッケージも同様です。

答え4

一連の解釈済み (またはコンパイル済み) スクリプトを作成し、それらをインタープリタのシェル内で呼び出すことで、そのほとんどを実現できると思います。これにより、必要に応じてオブジェクトが返されたり、保存されたりします。

少なくとも、Ruby、Perl、Python、Haskell (例: GHCi)、JavaScript (例: node.js)、Matlab、そしてもちろん他の言語でもこれを行うことができます...

関連情報