无限循环 shell 脚本的内存使用情况

ada*_*ign 3 memory shell-script

所以,我有一个用于更新 MySQL 数据库的 shell 脚本,它看起来像这样:

#!/bin/sh
mysql -h "localhost" -u "root" "-p********" "database" < "update.sql"
sleep 5
sh $0
Run Code Online (Sandbox Code Playgroud)

它休眠 5 秒钟,然后sh $0无限地重新运行脚本,无需我的干预。但是,我的问题是关于内存的:

我对 shell 脚本比较陌生,但是内存是否像这样在循环中缓慢堆积?远程服务器是否回收内存,或者脚本最终会达到截止点?(或者,它会因内存泄漏而崩溃吗?)

Jak*_*uje 5

这不是循环,而是递归和内存随时间线性增加,这是您不想要的。

如果你想要一个内存使用量恒定的循环,你可以这样做:

#!/bin/sh
while 1; do
  mysql -h "localhost" -u "root" "-p********" "database" < "update.sql"
  sleep 5
done
Run Code Online (Sandbox Code Playgroud)