2011-09-23 193 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