7
有没有办法在Ruby脚本中捕获“command not found”错误?例如,给出:从Ruby的反引号中捕获“命令未找到”错误?
output = `foo`
如何捕获foo
没有安装的情况?我预计我可以rescue
一个例外,但这似乎并不适用于1.8.7。有没有一种不同的方式来调用子流程,以达到我想要的效果?还是有不同的方法?
更新
我的道歉,我忘了提一个隐藏的要求:我宁愿解释没有在命令行中泄漏到用户(它可以包含敏感数据),因此为什么异常捕捉法是优选的。再次抱歉,第一次离开这个。
一种策略,当你需要的特定功能是有用的,是运行预检检查,在尝试运行之前先查找功能,应用程序或代码。说'which'foo'`或使用一对夫妇文件测试来查找文件的存在及其可执行性,会告诉你是否可以安全地继续执行,而无需实际尝试命令并失败。它提供了更好的用户体验,因为您可以控制对缺失功能的反应,或者选择替代路线,或者通知用户由于缺少某些内容而无法继续。 – 2011-01-25 02:11:45
同意,但`哪'foo'`不是跨平台的,我想不出跨平台的方式去做它,除了尝试它并捕获错误... – kfb 2011-01-25 14:15:26