有两个目录,其中包含一些文件。我正在使用 Hadoop,这两个目录都是 Hadoop 文件系统。
目录的第一个位置-
/sys/edw/
目录的第二个位置-
/apps/only/
我想看看these two directories
有没有files or not
。如果它们包含一些文件,则continue and execute my other shell scripts
,但如果它们不包含任何文件,wait for half an hour
则再次检查文件是否已到达这两个目录。
如果它已经到达,则执行其他 shell 脚本,但如果它没有到达,则再次等待半小时,并继续每半小时检查一次。
算法-
If [ hadoop fs -ls /sys/edw/ AND hadoop fs -ls /apps/only/ ]
then
continue executing my other shell scripts
but if condition is not true
wait for half an hour and then check again with the if loop and keep on looking every half an hour until the if condition is not true
我只想在上面的 if 条件为真时执行下面的脚本。
query.sh
基本上我有几个我只想运行的脚本, if condition is true
否则继续检查every half an hour
并查看if condition is true or not
.
我在奔跑SunOS 5.1
更新代码:-
我正在尝试类似下面的内容,并且此目录中不存在文件(/apps/hdmi/20120916),因此它应该休眠半小时,但不是休眠,而是执行它应该执行的其他 shell 脚本不是在做——
while [ ! hadoop fs -ls /apps/hdmi/20120916 ]; do
sleep 1800
done
echo "Hello new11"
pwd
我做错了什么吗?
再次更新:-
while ! hadoop fs -ls /apps/hdmi/20120916 ; do
sleep 1800
done
echo "Hello new11"
pwd
我也试过上面的那个,但是这个目录不存在(/apps/hdmi/20120916),而不是睡半个小时,它会打印Hello new11
不应该发生的。它应该等待半个小时。我还缺少什么吗?我在跑步SunOS 5.1