在linux中 “# for i in `ls` ; do su -sh $i ; done ”命令是什么意思?
3 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
慕田峪7331174
TA贡献1828条经验 获得超13个赞
这是一个for循环语句。
首先声明一个变量i ,将/*即根目录下的所有文件的名称全部赋值给刚刚声明的变量i。这一段在编程中叫做循环头。接下来。do 和done之间的部分是循环体。
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
echo $i的作用是将根目录下所有文件显示出来。
wc -l 的作用是显示文件的行数。
find $i是查找根目录下所有文件。
那么这个循环在实际运作时是这样的。
首先声明变量i,将/*即根目录下的所有文件的名称全部赋值给刚刚声明的变量i。
echo $i会将在根目录下的第一个文件名称显示出来,然后执行find $i | wc -l,这样会把根目录下第一个文件的行数显示出来。此时,第一次循环结束了。接着进行第2次循环,此时,echo $i会将在根目录下的第二个文件名称显示出来,然后执行find $i | wc -l,这样会把根目录下第二个文件的行数显示出来。就这样一次次的循环,直到把根目录下最后一个文件名称和它的行数显示出来。此时,既然已经是最后一个文件了,也就没有下一个了。所以循环的条件已经不能满足了。于是,就跳到done;的后面,for循环结束。
- 3 回答
- 0 关注
- 1068 浏览
添加回答
举报
0/150
提交
取消