在while循环结束后执行命令

时间:2021-07-11 15:10:35

标签: bash

我正在尝试寻找一种使用 while 循环来检查特定条件的方法,如果满足该条件,将执行另一个命令。

例如:

while [ -z "$(ls -A test-dir)" ];
do
  echo "directory is empty, checking again in 5 seconds"
  sleep 5
done

一旦目录中有任何文件,这个循环就会结束,我试图找到一种正确的方法在循环完成时在最后执行另一个命令。

1 个答案:

答案 0 :(得分:1)

发现我需要在 while 之后简单地添加最后一个命令:

while [ -z "$(ls -A test-dir)" ];
do
  sleep 2
  echo "sleeping 2 seconds"
done
echo "reached the end"

最后一条命令只有在循环完成后才会执行。