Bash 每30秒检查一次文件是否存在
为什么这样不行?我需要每隔30秒检查一个文件是否存在Bash 每30秒检查一次文件是否存在,bash,unix,if-statement,while-loop,terminal,Bash,Unix,If Statement,While Loop,Terminal,为什么这样不行?我需要每隔30秒检查一个文件是否存在 STATUS=0 FILENAME="helloworld.file" while [ $STATUS -eq "0" ] do if [ -f $FILENAME ]; then STATUS=1; else sleep 30s; fi done 我不知道,我们问问吧 好的,那么让我们这样做: STATUS=0 FILENAME="helloworld.file" while [ $STATUS -eq "0" ] do
STATUS=0
FILENAME="helloworld.file"
while [ $STATUS -eq "0" ] do
if [ -f $FILENAME ];
then STATUS=1;
else
sleep 30s;
fi
done
我不知道,我们问问吧
好的,那么让我们这样做:
STATUS=0
FILENAME="helloworld.file"
while [ $STATUS -eq "0" ]
do
if [ -f $FILENAME ];
then STATUS=1;
else
sleep 30s;
fi
done
我不知道,我们问问吧
好的,那么让我们这样做:
STATUS=0
FILENAME="helloworld.file"
while [ $STATUS -eq "0" ]
do
if [ -f $FILENAME ];
then STATUS=1;
else
sleep 30s;
fi
done
你忘了一个
代码>==>
while [ "$STATUS" -eq "0" ]; do
if [ -f "$FILENAME" ]; then
STATUS=1
else
sleep 30
fi
或:
此外,不要忘记使用双引号保护变量,或者使用语法[[
您还可以简化代码:
while true; do
[[ -f $FILENAME ]] && break
sleep 30
done
您忘记了一个;
==>
while [ "$STATUS" -eq "0" ]; do
if [ -f "$FILENAME" ]; then
STATUS=1
else
sleep 30
fi
或:
此外,不要忘记使用双引号保护变量,或者使用语法[[
您还可以简化代码:
while true; do
[[ -f $FILENAME ]] && break
sleep 30
done
第3行您忘记了分号:而[$STATUS-eq“0”];do
@Michal Kordas如果你想到处修改打字错误,请在写文章时修改文章中的所有内容。这不一定特别适用于此编辑,但你最近建议的一些编辑遗漏了文章中的重要问题。@mikeTheLiar,我肯定会做得更彻底。@mikeTheLiarreviews@Michal干杯,谢谢你忘记分号:while[$STATUS-eq“0”];do
@Michal Kordas如果你想到处修改打字错误,请在写文章时修改文章中的所有内容。这不一定特别适用于此编辑,但你最近建议的一些编辑遗漏了文章中的重要问题。@mikeTheLiar,我肯定会做得更彻底。@mikeTheLiarreviews@Michal干杯,谢谢lcheck
:太酷了!可能在向SO发问之前就应该要求这样做。:-shellcheck
:太酷了!可能在向SO发问之前就应该要求这样做。:-)