使用ruby文件(或任何rake工具)我需要确定执行我的脚本的用户是否能够执行某些shell命令。尤其是g ++等。希望系统独立,所以如果有一些g ++ .bat,g ++。exe或者g ++(etc),它应该说是,只要它在用户系统上的路径和可执行文件上。通过ruby文件确认可执行文件(script,bat,cmd,exe)的存在
例如:如果用户有一个不扩展的可执行版本的文件和一个.cmd版本的文件,它应该在linux系统上为“no”扩展版本说“yes”,在.cmd里为“yes”在Windows系统上的版本。由于用户shell只能执行该版本的文件。
这样做的目的是允许脚本自行配置(尽可能)。
关于我如何去做这件事的任何建议?
嗯,我考虑过了,但被'system“推迟了g ++”'返回false。没有考虑'--version',这是一个好主意,而且更具体地说,比我的方法更好。 – 2010-06-03 22:09:08
+1。通常,检查你是否可以运行一些可执行文件的最好方法是运行该死的可执行文件。毕竟,即使* if *你检查它是否存在*和*它是可执行的*并且*它在路径中,为什么它不起作用还有很多原因:权限,资源限制,错误的库版本,由于文件系统错误而损坏的可执行文件,没有足够的内存... – 2010-06-03 22:22:58
在Rake中有一个和上面的系统非常相似的命令sh。这就是我已经尝试过的,因为它可以传递给结果和状态,但是我的两个问题是,首先你认为 - 在那里,我应该没有通过任何我会假设它退出;第二我似乎无法想到一种(通用)方法来防止输出到用于执行脚本的shell。 – srcspider 2010-06-04 04:00:48