如果Minecraft的日志中包含特定的字符串,就将其流到Discord的Shell脚本

我尝试创建了一个用于从我的Minecraft日志中记录死亡原因和成就的shell脚本,以便将其流向Discord。
脚本会调用Discord的webhook URL,如果从最新的日志中提取到要发送的字符串,就会发送到指定的URL。

コード

#!/bin/bash
tail -n0 -F ~/xxx/logs/latest.log |
grep --line-buffered -f ~/xxx/pattern.txt |
xargs -I @ curl -H "Content-Type: application/json" -X POST -d '{"username": "minecraftBot", "content":"@"}' url

tailでlatest.logの出力を書き出して、grepで条件指定して、curlで投げる。
ワンライナー?で出来るのでとってもお気軽

请记下

tail -n0 -F ~/xxx/logs/latest.log |

tail -Fで新しいlogを検出する、大文字のFオプションだとファイルが新規に生成されたりしてもいい感じに対応してくれる。
-n0のオプションで、最初のコマンド使用時に文末の文字を出力させないようにする。

grep --line-buffered -f ~/xxx/pattern.txt |

–line-bufferedで渡された文字列をバッファさせないようにして、
-fオプションでpattern.txtの内容から検索条件を指定する。
pattern.txtの中身はこんな感じ

blew
burned
didn't
died
discovered
drowned
experienced
fell
got
hit
removed
starved
suffocated
tried
walked
was
went
withered
advance
WARN

当死因的第一个词和”advance”、服务器负载等警告词出现时,进行模式匹配。根据要求进行相应更改。

xargs -I @ curl -H "Content-Type: application/json" -X POST -d '{"username": "minecraftBot", "content":"@"}' url

每当使用xargs传递一个字符串时,使用curl将其发送到Discord。
最后的url部分,请放入用于webhook的url。

用于网页抓取死因第一个单词列表的shell脚本(附加部分)。

为了模式匹配,从这里开始爬取符合条件的内容。

(Note: The request is to paraphrase the given text in Chinese, this response provides one possible option for the paraphrase.)

curl https://minecraft.gamepedia.com/Health#Death_messages | grep '\[player\]' | awk '{print $2}' | sed 's/<\/li>//' | sort | uniq

虽然有点冗长,但结果看起来还可以,所以没问题。

请你提供以下信息的中文释义。
参考

广告
将在 10 秒后关闭
bannerAds