gpt4 book ai didi

linux - 在使用 inotifywait 时遇到问题,试图观察 golang 更改的目录

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:13 25 4
gpt4 key购买 nike

<分区>

我正在尝试编写一个 bash 脚本来监视目录的更改。如果文件是 .go 或 .html 文件,我想终止特定进程然后启动它。

这到处都是失败的,我不确定为什么。在搜索了很多网站寻求帮助后,我尽力让这个工作正常,但我无法得到它。

理想的解决方案是我将通过传递一个目录和一个要运行的文件来运行它,它只会在我保存文件时重新加载进程。

我是这样运行的:

./gowatcher/path/to/my/directory/to/watch foo.go

这是我目前所拥有的:

#!/usr/bin/env bash

WATCH_DIR=$1
FILENAME=$2

function restart_goserver() {
if go run $FILENAME
then
pkill -9 -f $FILENAME > /dev/null 2>&1
pkill -9 -f a.out > /dev/null 2>&1
go run $FILENAME &
echo "started $FILENAME"
else
echo "server restart failed"
fi
}

cd $WATCH_DIR
restart_goserver

echo "watching directory: $WATCH_DIR"
inotifywait -mrq -e close_write $WATCH_DIR | while read file
do
if grep -E '^(.*\.go)|(.*\.html)$'
then
echo "--------------------"
restart_goserver
fi
done

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com