3 回答

TA貢獻1848條經(jīng)驗 獲得超2個贊
首先 在命令前面有個 '#'的意思是本句話是注釋,并不實際執(zhí)行...
再說你后面語句的意思,for ... in .... ; done是循環(huán)結(jié)構(gòu),ls是查看目錄下的文件,su是以另一個身份($i),來運行一個shell,但問題是su 沒有-sh選項,也就是說你這句話應(yīng)該有問題才對.
整體分析是遍歷將當(dāng)前目錄下的文件,每個文件執(zhí)行su -sh XXX(這里XXX是當(dāng)前目錄下的所有文件),功能尚不明確,還請樓主明示.

TA貢獻1876條經(jīng)驗 獲得超5個贊
就是獲取當(dāng)前目錄下的文件 并且以管理員身份依次運行腳本 就是目錄下的腳本文件....可以理解為批量運行腳本 如果要生效 記得去掉注釋符#

TA貢獻1828條經(jīng)驗 獲得超13個贊
這是一個for循環(huán)語句。
首先聲明一個變量i ,將/*即根目錄下的所有文件的名稱全部賦值給剛剛聲明的變量i。這一段在編程中叫做循環(huán)頭。接下來。do 和done之間的部分是循環(huán)體。
echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
echo $i的作用是將根目錄下所有文件顯示出來。
wc -l 的作用是顯示文件的行數(shù)。
find $i是查找根目錄下所有文件。
那么這個循環(huán)在實際運作時是這樣的。
首先聲明變量i,將/*即根目錄下的所有文件的名稱全部賦值給剛剛聲明的變量i。
echo $i會將在根目錄下的第一個文件名稱顯示出來,然后執(zhí)行find $i | wc -l,這樣會把根目錄下第一個文件的行數(shù)顯示出來。此時,第一次循環(huán)結(jié)束了。接著進行第2次循環(huán),此時,echo $i會將在根目錄下的第二個文件名稱顯示出來,然后執(zhí)行find $i | wc -l,這樣會把根目錄下第二個文件的行數(shù)顯示出來。就這樣一次次的循環(huán),直到把根目錄下最后一個文件名稱和它的行數(shù)顯示出來。此時,既然已經(jīng)是最后一個文件了,也就沒有下一個了。所以循環(huán)的條件已經(jīng)不能滿足了。于是,就跳到done;的后面,for循環(huán)結(jié)束。
- 3 回答
- 0 關(guān)注
- 1118 瀏覽
添加回答
舉報