目錄
一、理論
1.for循環(huán)
2.echo命令
二、實(shí)驗(yàn)
1.實(shí)驗(yàn)一
2.實(shí)驗(yàn)二
3.實(shí)驗(yàn)三
4.實(shí)驗(yàn)四
5.實(shí)驗(yàn)五
6.實(shí)驗(yàn)六
7.實(shí)驗(yàn)七
8.實(shí)驗(yàn)八
9.實(shí)驗(yàn)九
一、理論
1.for循環(huán)
(1)for循環(huán)的常見(jiàn)用法
? ? ? ① 帶列表的for循環(huán)
帶列表的for循環(huán)用于執(zhí)行一定次數(shù)的循環(huán),其語(yǔ)法結(jié)構(gòu)如下:
for 變量名 in 取值列表
do
? 命令序列
done
for VARIABLE in (list)
do
command
done
for fruit in apple orange banana pear
do
echo "最愛(ài)吃的水果:$fruit"
done
echo "沒(méi)有其他愛(ài)吃"
[root@localhost ~]# sh fruit.sh
最愛(ài)吃的水果:apple
最愛(ài)吃的水果:orange
最愛(ài)吃的水果:banana
最愛(ài)吃的水果:pear
沒(méi)有其他愛(ài)吃
也可以將列表的內(nèi)容換成變量,循環(huán)的時(shí)候讀取變量的值;或者in后面的內(nèi)容可以是任意命令的標(biāo)準(zhǔn)輸出。例如:
sum=0
for VAR in `seq 1 100`
do
let "sum+=VAR"
done
echo "總和是: $sum"
~
[root@localhost ~]# sh sum.sh
總和是: 5050
? ? ??②?不帶列表的for循環(huán)
不帶列表的for循環(huán)如下所示:
for VARIABLE in (list)
do
command
done
使用不帶列表的for循環(huán)時(shí),需要運(yùn)行腳本時(shí)通過(guò)參數(shù)的方式給變量傳值。例如:
sum=0
for VAR
do
let "sum+=VAR"
done
echo "總和是: $sum"
[root@localhost ~]# sh sum.sh 7 8 9
總和是: 24
③?類C的for循環(huán)
shell支持類C的for循環(huán),語(yǔ)法結(jié)構(gòu)如下:
for ((expression1;expression2;expression3))
do
command
done
for ((i=1,j=100;i<=10;i++,j--))
do
echo "i=$i,j=$j"
done
~
~
[root@localhost ~]# sh for.sh
i=1,j=100
i=2,j=99
i=3,j=98
i=4,j=97
i=5,j=96
i=6,j=95
i=7,j=94
i=8,j=93
i=9,j=92
i=10,j=91
④??for的無(wú)限循環(huán)
無(wú)限循環(huán)又叫死循環(huán),使用類C的for循環(huán),只要保證expression2條件為真即可,會(huì)一直運(yùn)行,直到按下Ctrl+C組合鍵
for ((i=0;i<1;i+=0))
do
echo "i=$i"
done
~
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
i=0
^C
(2)for循環(huán)原理
for語(yǔ)句需要定義一個(gè)變量和取值列表,根據(jù)不同的取值執(zhí)行相同的命令,知道變量值用完。
取值列表里包含多個(gè)屬性相同的對(duì)象,例如:IP地址,通信錄等。
2.echo命令
echo用于輸出字符串或提取Shell變量的值
格式:echo [參數(shù)] [字符串]
表1 常用轉(zhuǎn)義符號(hào)及含義
轉(zhuǎn)義符號(hào) | 含義 |
-n?? | 表示輸出不換行 |
-E? | ?? 禁止反斜杠轉(zhuǎn)義,與-e參數(shù)功能相反 |
-e?? | ? 輸出轉(zhuǎn)義字符,將轉(zhuǎn)義后的內(nèi)容輸出到屏幕上 |
\b? | ?? 相當(dāng)于退格鍵,但前提是“\b”后存在字符;“\b"表示刪除前一個(gè)字符;”\b\b"表示刪除前兩個(gè)字符 |
\c?? | ? 不換行輸出。后面無(wú)字符時(shí)相當(dāng)于 echo -n;"\c"后有字符時(shí),將不被輸出 |
\n? | ?? 換行,但是換行后的新行從“\n”處開(kāi)始另起一行 |
\f | ???? 換行,但是換行后的新行的開(kāi)頭位置連接著上一行的行尾 |
\v?? | ? 與\f相同-E??? 禁止反斜杠轉(zhuǎn)義,與-e參數(shù)功能相反 |
\t?? | ?? 轉(zhuǎn)義后表示插入tab,即橫向制表符 |
\r? | ??? 光標(biāo)移至行首,但不換行,相當(dāng)于使用“\r”以后的數(shù)字覆蓋之前相等長(zhǎng)度的字符 |
| 表示插入“\”本身 |
(1)echo -n 不換行輸出
echo a
echo b
echo c
echo "......"
echo -n a
echo -n b
echo -n c
[root@localhost ~]# sh test.sh
a
b
c
......
abc[root@localhost ~]#
(2)echo -e 轉(zhuǎn)義字符; \b退格 不換行輸出
刪除相應(yīng)個(gè)數(shù)的字
[root@localhost ~]# echo -e "abcd"
abcd
[root@localhost ~]# echo -e "abc\bd"
abd
[root@localhost ~]# echo -e "ab\b\bcd"
cd
?(3)echo -e \c 不換行輸出
[root@localhost ~]# echo -e "abcd\c"
abcd[root@localhost ~]#
(4)echo -e \n 換行輸出
可在末尾
abcd[root@localhost ~]# echo -e "abcd\n"
abcd
也可以在中間
[root@localhost ~]# echo -e "ab\ncd"
ab
cd
?(5)echo -e \f、\v換行輸出
[root@localhost ~]# echo -e "abcd\fnice"
abcd
nice
[root@localhost ~]# echo -e "abcd\vbeauty"
abcd
beauty
(6)echo -e \r 光標(biāo)移至行首不換行
[root@localhost ~]# echo -e "abcd\r123"
123d
二、實(shí)驗(yàn)
1.實(shí)驗(yàn)一
計(jì)算從1到100所有整數(shù)的和
(1)腳本截圖
(2)運(yùn)行結(jié)果
2.實(shí)驗(yàn)二
提示用戶輸入一個(gè)小于100的整數(shù),并計(jì)算從1到該數(shù)之間所有整數(shù)的和
(1)腳本截圖
(2)運(yùn)行結(jié)果
3.實(shí)驗(yàn)三
求從1到100所有整數(shù)的偶數(shù)和、奇數(shù)和
偶數(shù)和
(1)腳本截圖
(2)運(yùn)行結(jié)果
奇數(shù)和
(1)腳本截圖
(2)運(yùn)行結(jié)果
4.實(shí)驗(yàn)四
用戶名存放在users.txt文件中,每行一個(gè),判斷文件里的用戶是否存在,若該用戶存在,輸出提示該用戶已存在;用戶存在但沒(méi)設(shè)密碼,則提示用戶并讓用戶設(shè)置密碼;若該用戶不存在,提示用戶輸入密碼,建立用戶并設(shè)立其密碼
(1)腳本截圖
(2)運(yùn)行結(jié)果
用戶不存在
用戶存在密碼不存在
5.實(shí)驗(yàn)五
檢測(cè)指定范圍主機(jī)是否通信,并將通信的主機(jī)ip輸出到文件host_ip中
(1)腳本截圖
(2)運(yùn)行結(jié)果
6.實(shí)驗(yàn)六
用戶輸入密碼,腳本判斷密碼是否正確,正確密碼為123456,輸入正確提示正確信息,連續(xù)輸錯(cuò)3次則報(bào)警
(1)腳本截圖
(2)運(yùn)行結(jié)果
7.實(shí)驗(yàn)七
使用循環(huán)語(yǔ)句將一個(gè) 0到255 之間的十進(jìn)制數(shù)轉(zhuǎn)換成8位數(shù)二進(jìn)制數(shù)
減法
(1)腳本截圖
(2)運(yùn)行結(jié)果
除基逆序取余
(1)腳本截圖
(2)運(yùn)行結(jié)果
8.實(shí)驗(yàn)八
某山頂上有一顆香蕉樹,一只猴子第一天從樹上摘了若干根香蕉,當(dāng)即就吃了一半,還不過(guò)癮,又多吃了一根。第二天猴子又將剩下的香蕉吃了一半,禁不住誘惑,又多吃了一根香蕉。依此類推,每天都將剩余的香蕉吃一半后再多吃一根。到了第十天,猴子發(fā)現(xiàn)只剩一根香蕉了,請(qǐng)問(wèn)這只猴子在第一天總共摘了多少根香蕉?
(1)腳本截圖
(2)運(yùn)行結(jié)果
9.實(shí)驗(yàn)九
(1)99乘法表
(2)倒三角 99乘法表
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-462410.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-462410.html
到了這里,關(guān)于Shell腳本攻略:循環(huán)語(yǔ)句for的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!