Windows、Linux、MacOS X 用のクロスプラットフォーム スクリプティング (言語) を探しています。.bat / bash にうんざりしています。
たとえば、自動ログイン時に「ワークステーションをロックする」などのことをしたいと思います (X-Window でこれを使用しましたが、解決策はかなり醜いものでした。今では、MS Windows でそれを望み、それほど醜くはありません :-) ) .
一般的に: タスクを自動化します。
それとも、Windows Scripting Host を使用したほうがよいのでしょうか?
PowerShell も頭に浮かびますが、それは私の好みでは Windows のみのようです。Python、Ruby、(Java?) などの言語は、WSH と (エレガントに? 思慮深く?) 対話できますか?
また、DBUS、DCOM などもイメージの一部として思い浮かびます。
現在、Java、.bat、bash、Ruby、Scala を組み合わせて使用しています。Excel用のVBA。これは時々かなり醜くなります。
OS固有の部分に近い、ネイティブの部分を使用した/使用した、クロスプラットフォームの一般的なソリューションが欲しいです。たとえば、Ruby が Windows 固有のものを駆動しているように (推測にすぎません)。
あなたは何を使うのですか?
ティア
9 に答える
私はLuaの大ファンです:
構文は漠然と Pascal に似ており、スクリプトでうまく機能します。
優れたパワーウェイトレシオ。優れたエンジニアリング。とても良いデザインです。
ANSI C コンパイラを使用して、あらゆるプラットフォームへの移植性が非常に高くなります。
wxLua およびその他のバインディングによる GUI サポート
Lua File Systemアドオンなど、一般的なタスクでOSの違いを隠すためのサポート
コア システムとライブラリは、使用しているものをすべて理解できるほどシンプルですが、bash/bat と比較して優れた活用力があります。表現力は Python や Ruby に匹敵します。
プラスにもマイナスにもなり得るライブラリやフレームワークに圧倒されることはありません。
優れた本があります: Roberto Ierusalimschy's Programming in Lua ; 前のエディションはオンラインで無料で入手できます。
tcl、perl、python、ruby に勝るパフォーマンス
x86 ハードウェアでさらに高速なパフォーマンスを得るには、LuaJIT があります。
最後に、これが切り札です。プラットフォーム固有の問題が発生した場合、プラットフォーム固有の C コードを記述して Lua スクリプトに動的にロードするのは簡単です。Lua はこのタスクを念頭に置いて設計されており、非常にうまく機能します。また、パフォーマンスのために C を簡単に使用することもできます (たとえば、MD5 チェックサムの計算)。
過去 3 ~ 5 年間、スクリプトを bash/ksh/awk/sed/grep/perl から Lua に徐々に移行してきました。私は結果にとても満足しています。
あなたはBatshを試すことができます
Batsh は、Bash および Windows Batch にコンパイルされる単純なプログラミング言語です。これにより、依存関係を追加することなく、すべてのプラットフォームで一度実行されるスクリプトを作成できます。
PerlとPythonはどちらも、ほぼすべてのプラットフォームで利用できます
矛盾の端でジャグリングしていると思います。プラットフォームに依存しない(称賛に値する)だけでなく、「OS固有に近い」ことも望んでいます。
ただし、プラットフォームの非依存性をもう少し重視するなら、汎用スクリプト作成に groovy (より Java に適した ruby の親戚) を使用するというアイデアを楽しんでいます。必要に応じて、OS シェル コマンドを呼び出すことで、OS 固有の動作を取得できます。
私の動機は少し異なります。Groovy コードは bash よりも堅牢であることがわかりますが、開発中のプロジェクトには優れたマルチプラットフォーム スクリプト ツールも必要になります。
スクリプトをTclで書くことができます。
構文は単純で、スクリプトに期待するものに近いです。
クロスプラットフォームであり、すべての主要なプラットフォームで動作します。
Tk でスクリプト用のシンプルな GUI を簡単に作成できます。これはどこでも機能し、ネイティブ コントロールを使用します。
Windows 固有の機能については、Twapi (Win32 API バインディング) を使用できます。
Tcl ディストリビューション全体である単一のファイルである Tclkit をインストールできます。長いインストール プロセスや隠しファイル、謎のディレクトリはありません。
- Linux、Windows、Mac のランタイムを単一のフラッシュ ドライブに簡単に配置できるため、ローカルにインタープリターがインストールされていなくても、いつでもインタープリターを利用できます。
たとえば、RubyがWindows固有のものを駆動するように
それは確かに可能であり、Ruby on Windowsブログでは多くの例を見つけることができます。また、Pickaxe の本と控えめな本の中に章があります。
まだ必要かどうかはわかりませんが、必要な場合は ant ( http://ant.apache.org/ ) を試してください。クロスプラットフォームの「スクリプト言語」です。基本的に、ant ファイルは、JVM プログラムによって解釈される xml ファイルです。
シェルにはUNIXおよびUNIXのようなプラットフォームの可能性がありますが、Windowsのために、これがどのスクリプト言語でも可能であるとは思いません。
UNIX システムの場合、これを使用できます。
#!/bin/sh
TYPE=`uname`;
echo 'this is ' ${TYPE};
if [ ${TYPE} = HP-UX ]
then bdf /var;
elif [ ${TYPE} = Linux ]
then df -h /var;
elif [ ${TYPE} = FreeBSD ]
then df -k /var;
else echo "Unsupported OS - ${TYPE}"
fi
それがあなたを助けることを願っています!
Mono で C# を使用します。