如何解决inotifywait - 每秒只重启 ghci 保存
脚本
我有一个简短的 bash 脚本,它使用 inotifywait
重新启动给定文件上的 ghci
repl:
#!/bin/sh
$(while inotifywait -e close_write $1; do pkill ghc; done) &
while inotifywait -e close_write $1
do
sleep 2
stack ghci $1
done
说明
这一行:
$(while inotifywait -e close_write $1; do pkill ghc; done) &
负责在保存文件时停止 ghc
。
本节:
while inotifywait -e close_write $1
do
sleep 2
stack ghci $1
done
负责在保存文件时启动 ghc
(延迟 2 秒后)。
试用
鉴于在 vscode 中加载了以下 Haskell 文件:
abc = 123
在终端窗口中按如下方式启动脚本:
$ ./inotifywait-stack-ghci.sh abc.hs
如果你保存文件两次(见下面的问题),repl 应该重新启动。
问题
该脚本非常有效!然而,有一个问题:repl 仅在每保存第二个文件时重新加载。所以基本上,要重新加载 repl,我必须将文件保存两次。
有人见过这种东西吗?有什么解决办法吗?
备注
-
该脚本假设您一次只运行一个
ghc
副本。 -
我一直在 WSL 下的 Ubuntu 20.04.2 中对此进行测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。