Shell脚本中的文件写缓冲

Man*_*noj 1 linux shell

我有一个启动shell脚本,它从文件中读取一个值,将其递增1并将其写回.之后,我进行系统的电源循环(关闭并打开电源).我试图用这种方式记录重启的次数.但我发现文件计数器始终保持为1.如果我使用reboot命令重新启动,则文件中的计数器会正确递增.这是因为内核缓冲并延迟了文件写入.有没有办法强迫它立即写?

rc.user文件如下:

cd /root
bash bootcounter.sh
sleep 1
Run Code Online (Sandbox Code Playgroud)

bootcounter.sh如下

rebootcount=$(<bootcount)
rebootcount=$(($rebootcount+1))
echo $rebootcount >bootcount
Run Code Online (Sandbox Code Playgroud)

谢谢...

Wil*_*ell 5

你想要sync命令.这应该刷新所有文件系统.

count=$( cat bootcount )
echo $( expr $count + 1 ) > bootcount
sync

但是,您可能应该使用完整路径来引导计数.