Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
针对windows、Linux、MacOS X的跨平台脚本_Windows_Linux_Scripting_Multiplatform - Fatal编程技术网

针对windows、Linux、MacOS X的跨平台脚本

针对windows、Linux、MacOS X的跨平台脚本,windows,linux,scripting,multiplatform,Windows,Linux,Scripting,Multiplatform,我正在寻找适用于windows、Linux、MacOS X的跨平台脚本(语言)。 我厌倦了.bat/bash. 例如,我希望在自动登录时锁定工作站“”(我在X-Window中有此功能,但解决方案非常难看;现在,我希望在MS Windows上有此功能,而不是那么难看:-)) 通常:自动执行任务。 还是使用Windows脚本主机会更好? PowerShell也出现在我的脑海中,但Windows似乎只适合我的口味。 像Python、Ruby(Java?)这样的语言能与WSH(优雅地?理智地?)交互吗?

我正在寻找适用于windows、Linux、MacOS X的跨平台脚本(语言)。 我厌倦了.bat/bash.

例如,我希望在自动登录时锁定工作站“”(我在X-Window中有此功能,但解决方案非常难看;现在,我希望在MS Windows上有此功能,而不是那么难看:-))
通常:自动执行任务。

还是使用Windows脚本主机会更好?
PowerShell也出现在我的脑海中,但Windows似乎只适合我的口味。 像Python、Ruby(Java?)这样的语言能与WSH(优雅地?理智地?)交互吗?

此外,DBU、DCOM等也会作为图片的一部分出现在脑海中。

目前我混合使用Java、.bat、bash、Ruby、Scala;一些VBA用于Excel。有时会变得很难看。

我想要一个跨平台的通用解决方案,其中包含/使用、、本机“”部件,接近操作系统的细节。比如Ruby驾驶一些Windows特定的东西(只是猜测)。
你用什么?

TIA

我会将C#与Mono结合使用。

我认为你在矛盾的边缘上挣扎:你希望平台独立(值得称赞),但也“接近操作系统的细节”

但是,如果您更加强调平台独立性,那么我一直很乐意将groovy(ruby的一个更为java友好的亲戚)用于通用脚本编写。当您需要它时,您可以通过调用OS shell命令来获得特定于OS的行为

我的动机有点不同:我发现groovy代码比bash更健壮,尽管我也需要一个好的多平台脚本工具来完成我正在开发的项目

比如Ruby驾驶一些Windows专用的东西


在博客上,你可以找到很多例子,《鹤嘴锄》一书中还有一章。你可以用它来写脚本

  • 语法很简单,更接近于 你对剧本的期望

  • 它是跨平台的,将在所有主要平台上运行

  • 您可以轻松地在Tk中为您的脚本创建简单的GUI,它也可以在任何地方工作并使用本机控件

  • 对于Windows特定的功能, 您可以使用(Win32 API) 绑定)

  • 您可以安装一个Tclkit,它是一个文件,是整个Tcl发行版。没有冗长的安装过程或隐藏的文件或神秘的目录

    • 您可以轻松地将linux、windows和mac运行时放在单个闪存驱动器上,这样即使本地没有安装解释器,您也可以随时准备解释器

Perl和Python几乎在所有平台上都可用

我非常喜欢:

  • 语法有点像Pascal,并且在脚本中运行良好

  • 超高的功率重量比。一流的工程技术。很好的设计

  • 具有ANSI C编译器,可移植到任何平台

  • 通过wxLua和其他绑定提供GUI支持

  • 在常见任务中隐藏操作系统差异的一些支持,例如Lua文件系统插件

  • 核心系统和库非常简单,您可以了解所使用的所有内容,但与bash/bat相比仍具有出色的优势。表达能力与Python或Ruby相当

  • 您不会被库和框架淹没,它们可以是正的,也可以是负的

  • 有一本很好的书:罗伯托·伊鲁萨林斯基的;你可以拿到这个

  • 性能优于tcl、perl、python和ruby

  • 为了在x86硬件上获得更快的性能,有LuaJIT

  • 最后,这是一张王牌:如果您遇到任何特定于平台的问题,那么编写特定于平台的C代码并将其动态加载到Lua脚本中是很容易的。Lua的设计考虑到了这个任务,并且做得非常好。您还可以很容易地使用C来提高性能(例如,计算MD5校验和)


在过去的3到5年中,我一直在逐步将脚本从bash/ksh/awk/sed/grep/perl迁移到Lua。我对结果非常满意。

在shell中有可能使用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
我希望它能帮助你


不确定您是否仍然需要它,但如果需要,请尝试ant()。这是一种跨平台的“脚本语言”。基本上,ant文件是由JVM程序解释的xml文件。

您可以试试

Batsh是一种简单的编程语言,可编译为Bash和Windows批处理。它使您能够编写一次在所有平台上运行的脚本,而无需任何其他依赖项


我觉得这是一个奇怪的脚本选择。例如,在bash中,使用
cat file.txt
显示文件的内容;在groovy中,使用
println新文件(“File.txt”).text
:使用C需要多少代码(+编译)?C#可能是一种很好的通用OO语言,但有一件事它做得不好,那就是支持脚本。仅供参考(但并不意味着C#适合脚本编写)在C#中,您可以在repl环境中编写:File.ReadAllText(“File.txt”)(包含在mono:)谢谢。关于所谓的、相互矛盾的':通常是跨平台的,但能够集成(调用)操作系统的细节。这并不罕见。我感觉你倾向于使用比你提到的ruby+shell命令组合更好的东西:这就是我的意思。我只是说,你不可能找到比这更好的东西。Groovy很好,但是jvm启动缓慢,这使得java无法启动短脚本。如果打算从其他东西多次调用它,那么它几乎是无用的。这只是一个我们感兴趣的用例的问题