十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
首先 在命令前面有個 '#'的意思是本句話是注釋,并不實際執(zhí)行...

成都創(chuàng)新互聯(lián)是專業(yè)的醴陵網(wǎng)站建設公司,醴陵接單;提供成都網(wǎng)站設計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行醴陵網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
再說你后面語句的意思,for ... in .... ; done是循環(huán)結構,ls是查看目錄下的文件,su是以另一個身份($i),來運行一個shell,但問題是su 沒有-sh選項,也就是說你這句話應該有問題才對.
整體分析是遍歷將當前目錄下的文件,每個文件執(zhí)行su -sh XXX(這里XXX是當前目錄下的所有文件),功能尚不明確,還請樓主明示.
題主你好,
前提: 我們知道每個進程運行后,系統(tǒng)都會分配給其一個id號,這個id號和進程是關聯(lián)的,我們可以通過操作該id來實現(xiàn)操作對應進程的目的,如通過id殺死進程等.
$!很多人解釋為后臺運行的最后一個進程的id號(我覺得解釋為最近一次后臺運行的id號更容易理解). 舉個例子說一下吧,這樣更直觀一點.
我們先準備一個簡單的腳本1.sh, 里面內(nèi)容很簡單,就是睡眠100秒:
下面我們在后臺運行這個腳本,看一下$!的輸出結果:
從上圖可以看出, 腳本運行后,系統(tǒng)分配給它的進程id是54821, 后面我們連續(xù)輸出三次$!,得到的結果是一樣的,都是54821.? 因為1.sh這個腳本就是我們最近一次后臺運行的腳本,所以此時無論輸出多少次$!結果都是一樣的.
-----
接下來, 我們再運行一個內(nèi)容同1.sh相同的2.sh:
可以看到, $!的輸出結果變?yōu)榱?4860,不再是上面的54821. 因為此時2.sh是我們最近一次后臺運行的腳本,因此,$!結果變?yōu)榱?4860.
=====
希望可以幫到題主, 歡迎追問.
1、for FILE in $(ls); do [COMMAND]; done
2、for a in {1..100}; do echo $RANDOM; done
3、for (( c=1; c=5; c++ )); do echo $RANDOM; done
4、for ((c=1; c21; c+=2)); do echo "Welcome $c times" ; done
5、for line in $(cat user.txt); do getent shadow $line; done
6、for FILE in $(cat file); do tar zcf $FILE.tar.gz $FILE;rm -rf $FILE; done
7、# awk計算所有行所有區(qū)域的總和
awk '{for (i=1; i=NF; i++) s=s+$i}; END{print s}'
如下文件名批量修改:
202007070923_12345678.txt
202007070923_23456789.txt
使用命令:
for name in 2020*.txt; do mv "$name" "${name#*_}"; done
命令解析:
#*_為刪除第一個"_"符號左邊的所有字符(包括第一個"_");
整體命令為:循環(huán)查找2020開頭的txt文件,并將文件名只保留第一個"_"符號后面的部分.