我写了一个简单的脚本:
for DIR in /etc/*; do
if [ "$DIR" == "/etc/dhcp" ]; then
echo $DIR
break
fi
done
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我break在fi它之后使用它不会产生理想的结果。
那个脚本和这个脚本有什么区别?
for DIR in /etc/*; do
if [ "$DIR" == "/etc/dhcp" ]; then
echo $DIR
fi
break
done
Run Code Online (Sandbox Code Playgroud)
简单来说,如果满足条件,for循环将在第一个脚本中终止。但是在第二个脚本中,for无论条件是否满足,循环都会终止。该for循环将执行一次。因此,第二个脚本中的 for 循环没有任何好处,因为结果是相同的。
因此,在第一个脚本的末尾,值为DIRwill/etc/dhcp并且输出将在那里。但是在第二个脚本的情况下, 的值DIR将是首先找到的文件夹的名称。它可能会发生/etc/dhcp。在这种情况下,将执行 if 条件,您将看到输出。但是如果 的值DIR是别的东西,那么就没有输出。