1、for FILE in $(ls); do [COMMAND]; done
海南網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
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}'
#!/bin/sh
while :
do
ntpdate 192.168.0.235
sleep 1
done
保存這個腳本,比較叫file.sh
然后給他執(zhí)行權(quán)限 chmod +x file.sh
設(shè)置開機自動啟動 cp file.sh /etc/rc3.d/S99ntp
cp file.sh /etc/rc5.d/S99ntp
時間可以自己調(diào),我上面寫sleep 1 是停一秒
echo -e "Please enter your choice (A-Q) : "
read choice
while [ $choice != "Q" ] [ $choice != "q" ]
do
if [ $choice = "A" ] || [ $choice = "a" ]
then
echo "A) Creat a user account"
elif [ $choice = "B" ] || [ $choice = "b" ]
then
echo "B) Delete a user account"
elif [ $choice = "C" ] || [ $choice = "c" ]
then
echo "C) Change supplementary group for a user account"
elif [ $choice = "D" ] || [ $choice = "d" ]
then
echo "D) Change initial group for a user account"
elif [ $choice = "E" ] || [ $choice = "e" ]
then
echo "E) Change defult login shell for a user account"
elif [ $choice = "F" ] || [ $choice = "f" ]
then
echo "F) Change account expiration date for a user account"
fi
read choice
done
echo "Q) Quit"
摘要: Linux , Shell
Shell中常用循環(huán)有 for , while
for循環(huán)只能用于 固定次數(shù) 的循環(huán),因此不能無限循環(huán)和用于一些在后臺守護進程一直運行的程序,語法語句如下
也可以寫成一行,用 ; 分隔
取值列表內(nèi)元素以空格隔開,如果元素帶有空格則用引號包裹起來,例子如下
輸出如下,可見循環(huán)到最后退出循環(huán),引用變量依舊是最后一個取值列表元素
一行的寫法
Shell的for循環(huán)也可以采用C語言的寫法,注意是 雙括號 ,用 分號; 間隔
一個簡單例子
while循環(huán)語句結(jié)合條件測試使用,語法如下
舉一個例子
在循環(huán)中使用條件測試實現(xiàn)復(fù)雜的邏輯,例如
也可以使用,||一行完成,省去if,fi
Shell的continue,break語句和Python一樣,例子如下
break語句下輸出4
continue語句下輸出4 6 7 8 9 10
常見結(jié)合使用的循環(huán)體有 序列 , 數(shù)組 , 命令行傳參 , 文件目錄和文件
序列通過 seq 命令或者 {begin..end..step} 符號進行定義:
結(jié)合for循環(huán)使用案例
在Shell中使用小括號 () 定義數(shù)組,數(shù)組遍歷使用 [@] 符號,防止元素有空格用雙引號包起來,,例子如下
命令行傳參遍歷使用固定符號 $@ ,如果參數(shù)中有空格,用雙引號括起來,例子如下
文件遍歷使用 ls 命令,可以指定目錄,以及通配符匹配
一個雙重循環(huán)實現(xiàn),注意 expr表達式中乘號要加轉(zhuǎn)移符
(2)將某目錄下大小大于閾值的文件移動到另一個文件
遍歷循環(huán)一個目錄,使用awk語法獲得文件大小,將100m以上的文件移動到另一個文件夾
(2)指定開始日期和結(jié)束日期完成一個跑批任務(wù)
指定一個開始時間和結(jié)束時間,while從開始日期一直自增到結(jié)束日期循環(huán)結(jié)束,通過 date -d '2021-01-01 1day' +%Y-%m-%d 自增一天
什么是永久的在后臺運行 一直運行這一個命令? 如果是這樣就寫一個腳本 while 無限循環(huán)命令 如果不是 就直接把你命令轉(zhuǎn)到后臺就行