首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ruby内部调用cygwin内部的growlnotify

从ruby内部调用cygwin内部的growlnotify
EN

Stack Overflow用户
提问于 2011-09-08 07:11:29
回答 1查看 233关注 0票数 1

我在Windows7机器的cygwin上运行的ruby脚本中调用growlnotify时遇到了一些问题。我怀疑这是可行的,但是有几层太多的解释正在发生,我不知道正确的转义序列需要是什么。

以下代码(未指定自定义图标)工作正常:

代码语言:javascript
复制
#!/usr/bin/ruby

l = "Hello World"

system("/cygdrive/c/Program\\ Files\\ \\(x86\\)/Growl\\ for\\ Windows/growlnotify /t:testedfa  \'#{l}\'")

然而,当我尝试指定一个图标时,事情开始失败了。根据我尝试了多少层转义字符,该命令要么什么也不做,要么就会崩溃。具体地说,使用下面显示的代码,我根本没有从Growl得到任何响应。

代码语言:javascript
复制
#!/usr/bin/ruby

l = "Hello World"

system("/cygdrive/c/Program\\ Files\\ \\(x86\\)/Growl\\ for\\ Windows/growlnotify /t:testedfa /i:C:\\\workspace\\\tryCPUnit\\\amp\\\testedfa\\\pass.png \\\'#{l}\\

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-08 07:28:25

尝试使用多参数形式的system,它将通过绕过外壳删除一层转义。如下所示:

代码语言:javascript
复制
system(
    '/cygdrive/c/Program Files (x86)/Growl for Windows/growlnotify',
    '/t:testedfa',
    '/i:C:/workspace/tryCPUnit/amp/testedfa/pass.png',
    l
)

\\通常接受正斜杠或反斜杠,所以我稍微清理了一下你的Windows开关,如果Windows不喜欢该路径,请回到Windows。

使用单一参数system几乎总是一个即将发生的错误,除非没有其他方法(我想不出什么时候会有更好的方法)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7341520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档