2011-09-23 196 views
2

我想写一个脚本来跟踪文件更改的进度。UNIX shell脚本while循环

我有以下至今:

#!/bin/sh 
old=‘ls -l /tmp/file‘ 
new=‘ls -l /tmp/file‘ 
while [ "$old" = "$new" ] 
do 
    new=‘ls -l /tmp/file‘ 
done 
echo "The file has been changed" 

运行时给出了消息的上述程序:

new: command not found 

能有人帮。

感谢

+0

你可能想' “$老” -eq “$新的”' –

+0

@Marc,不,在壳'='是字符串比较和'-eq'是数值比较。 –

+0

@Mike,你可能想在你的while循环中抛出一个'sleep 5'。 –

回答

1

你可能有大约=空间。

在外壳中,当您指定的值,你不能把周围空间=

MY_VAR = "my value" # this is wrong! 

壳牌会想:“呼叫MY_VAR与参数:(‘=’,‘我的价值’)”,但等待!我不知道命令“MY_VAR”!

你需要做的是这样:

MY_VAR="my value" # this is OK! 

顺便说一句,可以考虑使用inotifywatch命令。这里的例子:

inotifywatch -v -e access -e modify -t 60 -r /file/to/watch