Jan*_*nis 3 css ruby command-line abort less
我正在尝试创建一个简单的Automator Droplet,它将style.less文件放入其中并在其上运行以下LESS命令:
$ LESSC {DROPPED_FILE} --watch
这将监视我已经放入任何更改的文件,然后将自动更新输出 style.css
仅供参考:我使用LESS来动态编写CSS文件.更多信息在这里.
基本的液滴效果很好.
{MY_VAR}./usr/bin/ruby如下所示system("lessc {MY_VAR} --watch &")这很好用但是我希望在退出自动贩卖应用程序时停止--watch.
LESS文档说在命令行shell中按CTRL-C快捷键以中止脚本.
但由于我不在终端窗口内(命令在后台传递),我不知道如何中止脚本.
即使在automator.app关闭后,style.less仍然会监视文件的更改,并且相应生成style.css的文件仍在被重写.
所以基本上我需要在退出.app时传递abort命令.
我生成了一个简单的弹出窗口,点击它会在将另一个命令传递给终端shell 后关闭应用程序.
这是我所有尝试都不能成功停止脚本的部分.
是否有与按CTRL-C命令相同的命令行功能?我怎么把这个最好的传递到shell?
如果您在控制台中按CTRL-C,则不会通过STDIN将其发送到您的程序.Bash(或任何你使用的)对待CTRL-C特殊.bash向进程发送信号.在CTRL-C的情况下,这是SIGINT.要向程序发送信号,您需要不要它的pid.然后你可以将信号发送到pid.为了能够获得pid,您可以使用ruby启动该过程.
p= IO.popen("lessc #{file} --watch")
pid= p.pid
Process.kill("INT", pid)
Run Code Online (Sandbox Code Playgroud)
在ruby中,执行某些操作至少有3种不同的方式.
`lessc #{file} --watch` # returns stdout after exit
system("lessc #{file} --watch") # returns the integer return value after exit
Io.popen("lessc #{file} --watch") # returns imidietly an io object, where STDIN and STDOUT can be written and read
Run Code Online (Sandbox Code Playgroud)
你使用过的system("lessc #{file} --watch&")也是imidietly但总是返回0.
| 归档时间: |
|
| 查看次数: |
4650 次 |
| 最近记录: |