簡體   English   中英

使用 java 作為 linux shell 腳本語言?

[英]Use java as a linux shell script language?

我在轉向 python 之前使用了 cshell/tcshell。

現在我要將我所有的 shell 腳本、gui、數據庫、網頁集成在一起。 Python 擅長大部分工作,但在 GUI、一般性能和第三部分庫方面相對較弱。

所以我打算嘗試 java 作為我的主要開發語言。 擅長shell 交互式編程、過程控制等?

非常感謝。

如果您想使用 Java 平台作為腳本語言,請查看Groovy

Java 本身可能不是最好的 shell 語言,因為啟動時間慢,缺乏與操作系統、命令和文件一起使用的內置庫(我的意思是,甚至沒有辦法復制 ZD523787880E1EA212 中的文件而不求助於 3創建兩個輸入和 output 流和管道數據,哎呀。)。

但是,有很多基於 JVM 的語言,如 JRuby(ruby)、Rhino(javascript)、Jython(python)、Groovy 或Grash 、Bean-shell 等,它們的工作方式與 shell 語言類似,並且可以運行其他 Java 編寫的程序. 我建議您看看Grash ,這可能正是您所需要的。

其中一些語言甚至有辦法預加載 JVM 運行時以加快啟動時間(例如 JRuby 的 Nailgun),從而可以解決啟動時間緩慢的問題。 另請參閱這篇文章,了解使用 Ruby(JRuby) 作為 shell 語言。

引導 JVM 通常很慢,並且會消耗相當多的 memory(與本機應用程序相比),因此它不適合運行許多(並行)經常啟動和終止的小型應用程序(進程)。 ...如果這是你的意圖

我編寫了 jpad 以允許運行 java “shell 腳本”和交互式片段,同時還提供了很好的結果可視化。 這說明了我的意思:

JPad Java REPL

要使用此腳本語言復制文件,您將使用: http://jpad.io/example/1I/fileio

final File file = new File("outt.csv");
Object o = new int[] {1,2,3};
JPad.writeCsv(o, file);
java.nio.file.Files.copy(file.toPath(), Paths.get("copy.csv"));

您也可以從命令行運行:

> more fileio.jpad
final File file = new File("outt.csv");
Object o = new int[] {1,2,3};
JPad.writeCsv(o, file);
java.nio.file.Files.copy(file.toPath(), Paths.get("copy.csv"));
> jpad fileio.jpad
> dir
29/04/2017  13:30    <DIR>          .
29/04/2017  13:30    <DIR>          ..
29/04/2017  13:30                16 copy.csv
29/04/2017  13:30               160 fileio.jpad
29/04/2017  13:30                16 outt.csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM