Macos UNIX终端-壳牌赢得';t端接,卡在回路中
我在终止外壳时遇到了一些问题。我在后台启动了几个filkontroll.sh来定期检查文件,看看它们是否被更改或删除。它似乎运行良好,只是当所有文件都被修改后,程序不会终止。它似乎不知何故陷入了for循环Macos UNIX终端-壳牌赢得';t端接,卡在回路中,macos,bash,shell,unix,scripting,Macos,Bash,Shell,Unix,Scripting,我在终止外壳时遇到了一些问题。我在后台启动了几个filkontroll.sh来定期检查文件,看看它们是否被更改或删除。它似乎运行良好,只是当所有文件都被修改后,程序不会终止。它似乎不知何故陷入了for循环 filkontroll.sh : #!/bin/bash clear declare -i status=1 if [ -f $1 ] then status=0 timestamp=$(stat -f "%Sm" -t "%H%M%S" $1
filkontroll.sh :
#!/bin/bash
clear
declare -i status=1
if [ -f $1 ]
then
status=0
timestamp=$(stat -f "%Sm" -t "%H%M%S" $1)
fi
while [ 0 ]
do
if [ -f $1 ] && [ $status -eq 1 ]
then
echo "Filen $1 ble opprettet."
break
elif [ ! -f $1 ] && [ $status -eq 0 ]
then
echo "Filen $1 ble slettet."
break
elif [ -f $1 ]
then
sistEndret=$(stat -f "%Sm" -t "%H%M%S" $1)
if [ ! $sistEndret -eq $timestamp ]
then
echo "Filen $1 ble endret."
break
fi
fi
sleep $2
done
kontrollflerefiler.sh:
#!/bin/bash
clear
for fil in $@
do
. filkontroll.sh $fil 2 &
done
你有什么版本的
stat
(我这里的stat命令没有任何用处)?您正在监视文件或文件系统吗?if
和firstelif
始终为false,因为如果$1
不存在,状态
显式设置为1,如果存在则设置为0。因此,如果$1
不存在(例如,在关联进程启动后删除),循环将永远不会终止。此脚本将检测并在.Etan上逐行提供注释。Etan:我正在监视文件。我不知道我有什么版本,但我正在使用更新的OSX Macbook Air上的终端窗口。它以“hhmmss”Chephner格式返回上次修改的时间戳:它们并不总是false。我已经尝试了所有树案例,当我只运行filkontroll.sh时,它运行得很顺利。@chepner此脚本是一个文件监视脚本。它旨在监视带外文件的更改。或者这个问题会让我相信。