shell 腳本循環語句

目錄

循環

echo 命令

for 循環次數

for 第二種格式

命令舉例

while

腳本舉例

雙重循環及跳出循環

腳本舉例

更改文件和目錄的后綴名的腳本

畫三角形的腳本

乘法口訣表的腳本

面試例題

補充命令

let 命令


循環

—— 一定要有跳出循環的條件

  1. 已知循環的次數

  2. 未知循環的次數,但是有一個跳出的條件

echo 命令

—— echo -n 表示不換行輸出

—— echo -e 表示輸出轉義符

轉義符號作用
-n表示不換行輸出
\e輸出轉義字符,將轉義后的內容輸出到屏幕上
\b轉義后相當于按退格鍵,但前提是 b 后面存在字符;b 表示刪除前一個字符,\b\b 表示刪除前兩個字符
\c不換行輸出,當 \c 后面存在字符時,后面的字符不會被輸出
\n換行,被輸出的字符從 \n 除開始另起一行
\f 或 \v換行,但是換行后的新行的開頭位置連接著上一行的行尾
\t轉以后表示插入 tab,即橫向制表符
\r光標移至行首,用后面的字符覆蓋等長度的前面的字符

for 循環次數

—— for 名稱 in 循環列表

do命令

done

—— 循環列表

  • 只和循環的額外次數有關

  • 有幾個值,就循環幾次

例
for i in a b c #for 變量名 in 循環列表
#i 為自定義,in 后面接列表循環次數,a b c 表示循環 3次
do
命令序列
done循環列表的表項形式[root@localhost opt]# echo {1..10}  
1 2 3 4 5 6 7 8 9 10
#將數字 1至10 全部列出
[root@localhost opt]# echo {0..10..2}
0 2 4 6 8 10
#將數字 0至10 中的偶數全部列出;從 0 開始到 10 結束,每次加 2,步長為 2
[root@localhost opt]# echo {1..10..2}
1 3 5 7 9
#將數字 0至10 中的奇數全部列出;從 0 開始到 10 結束,每次加 2,步長為 2seq #調用命令
[root@localhost opt]# seq 5 
1
2
3
4
5
[root@localhost opt]# seq 0 5
0
1
2
3
4
5
[root@localhost opt]# seq 0 2 5
0
2
4
[root@localhost opt]# seq 1 2 5
1
3
5

for 第二種格式

for ((表達式1;表達式2;表達式3)) ; do 命令 ; done

—— 表達式1 ==> 表達式2:是一個判斷,如果滿足表達式2 才執行 ==> 表達式3

命令舉例

[root@localhost ~]# ls
anaconda-ks.cfg       公共  視頻  文檔  音樂
initial-setup-ks.cfg  模板  圖片  下載  桌面
[root@localhost ~]# for a in * ;do echo $a ;done
anaconda-ks.cfg
initial-setup-ks.cfg
公共
模板
視頻
圖片
文檔
下載
音樂
桌面計算 1累計加到100 的結果
寫法一
[root@localhost ~]# sum=0;a=0;for a in {1..100};do let sum+=a ;done;echo $sum
5050寫法二
[root@localhost ~]# sum=0;a=0;for a in {1..100};do sum=$[sum+a] ;done;echo $sum
5050

while

—— 為限定條件,條件則成功執行

—— while 判斷條件:條件成立則繼續循環,條件不成立跳出循環

腳本舉例
累加求和#!/bin/bash
a=0
b=0
until [ $a -gt 100 ]
#當 a的值并不大于100 時,因為條件不成立,所以繼續循環執行,當 a的值大于100,滿足條件,則跳出循環
do
b=$[a+b]
let a++
done
echo b=$b

雙重循環及跳出循環

命令注釋
break跳出單個循環;break n :數字 n ,代表跳出 n 層循環
continue終止某次循環中的命令,但是不會完全終止命令;continue n :數字 n ,代表跳出 n 層循環
exit直接退出腳本
例
#!/bin/bash
for j in {1..6}
doif [ $j -eq 3 ]thenbreakfiecho j=$j
done#執行的結果
[root@localhost opt]# bash l.sh #在 j=3 的時候停止該循環命令
j=1
j=2#!/bin/bash
for j in {1..6}
doif [ $j -eq 3 ]#當j的值等于3時thencontinue#終止此次循環,但是,不會影響循環命令的后續執行fiecho j=$j
done#執行的結果
[root@localhost opt]# bash l.sh  #沒有顯示 j=3 
j=1
j=2
j=4
j=5
j=6

腳本舉例

更改文件和目錄的后綴名的腳本

#!/bin/bash
for a in *.txt
#給a賦值任意字符加后綴名.txt
do
b=`echo $a|cut -d "." -f1`
#給b賦值,輸出a 以 . 為分隔符,取后一列
mv $a ${b}.sh
#將a 的后綴名 .txt 更改為 .sh
done
畫三角形的腳本

#!/bin/bashfor a in {1..9}
dofor b in `seq $a`doecho -e "*\c"done
echo
done

結果展示

乘法口訣表的腳本

#!/bin/bash
for a in {1..9}
dofor b in `seq $a`doecho -e "${a}*${b}=$[a*b]\t\c "done
echo
done

結果展示

面試例題

#!/bin/bash
ip=192.168.91.
for a in {1..254}
do
{
ping -c1 -W1 ${ip}${a}  &>/dev/null
if [ $? -eq 0 ]
then
echo ${ip}${a}  >> /opt/cunhuo
else
echo ${ip}${a}  >> /opt/nocunhuo
fi
} &
done

補充命令

let 命令
符號作用
++自身變量 +1
--自身變量 -1
+=任意數值自身變量 +任意數值
-=任意數值自身變量 -任意數值
*=任意數值自身變量 *任意數值
/=任意數值自身變量 /任意數值
%=任意數值自身變量 %任意數值

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161380.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161380.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161380.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

英語六級范文模板

目錄 現象解釋 觀點選擇 問題解決 六級只考議論文,我們將從現象解釋,觀點選擇,問題解決三個角度給出范文: 多次使用的句子,就可以作為模板記下來~~ 現象解釋 In the contemporary world, the ability to meet cha…

SQLite3

數據庫簡介 常用的數據庫 大型數據庫:Oracle 中型數據庫:Server 是微軟開發的數據庫產品,主要支持 windows 平臺。 小型數據庫:mySQL 是一個小型關系型數據庫管理系統,開放源碼 。(嵌入式不需要存儲太多數據。) SQL…

點云從入門到精通技術詳解100篇-基于點云數據的機器人裝焊 過程在線測量(下)

目錄 裝焊過程在線測量技術研究 4.1 測量參數介紹 4.1.1 筋板定位測量參數

Rust個人學習之結構體

第一反應,Rust結構體跟python的很像,不知道感覺對不對; 書中提到第一反應,Rust結構體跟python的很像,不知道感覺對不對; 書中提到:結構體是一種自定義數據類型,它允許命名多個相關的…

Seaborn畫圖顏色和給定的RGB hex code不一致

使用以下代碼畫圖: import seaborn as sns import matplotlib.pyplot as plt plt.figure(dpi150) x [A,B,C,D] y [164, 86, 126, 53] sns.barplot(xx, yy, color#3a923a) 得到的顏色如下圖所示: 這是因為seaborn默認降低了顏色的飽和度,即…

UDP中connect的作用

udpclientNoConnect.c里邊的內容如下&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/socket.h> #include <errno.h> #include <syslog.h…

23屆萬興校招golang一面面經

問題有結合我的簡歷來問,面試官還是很友好的 1、你是如何學習go的(擴展講) go語言的基本概念和語法&#xff0c;上手golang開源項目跟架構(gin,gorm)&#xff0c;資料找官網。 2、項目深挖 為什么選擇gin? Gin路由使用了前綴樹算法&#xff0c;beego路由使用的正則算法和較為重…

基于 Flink CDC 打造企業級實時數據集成方案

本文整理自Flink數據通道的Flink負責人、Flink CDC開源社區的負責人、Apache Flink社區的PMC成員徐榜江在云棲大會開源大數據專場的分享。本篇內容主要分為四部分&#xff1a; CDC 數據實時集成的挑戰Flink CDC 核心技術解讀基于 Flink CDC 的企業級實時數據集成方案實時數據集…

獨立版求職招聘平臺小程序開發

小程序招聘系統開發 我們開發了一款高效、便捷的互聯網招聘平臺。在這里&#xff0c;可以輕松實現企業入駐、職位發布、在線求職、精準匹配職位和人才&#xff0c;以及參與招聘會等功能。目標是為求職者和企業搭建一個連接彼此的橋梁&#xff0c;幫助您更快地找到滿意的工作&…

SpringMVC(五)SpringMVC的視圖

SpringMVC中的視圖是View接口&#xff0c;視圖的作用渲染數據&#xff0c;將模型Model中的數據展示給用戶 SpringMVC視圖的種類很多&#xff0c;默認有轉發視圖(InternalResourceView)和重定向視圖(RedirectView) 當工程引入jstl的依賴&#xff0c;轉發視圖會自動轉換為JstlV…

深度學習 loss 是nan的可能原因

1 loss 損失值非常大&#xff0c;超過了浮點數的范圍&#xff0c;所以表示為overflow 狀態下的男。 解決辦法&#xff1a; 減小學習率&#xff0c;觀察loss值是不是還是nan 在將數據輸入模型前&#xff0c;進行恰當的歸一化 縮放 2 loss 的計算中存在除以0&#xff0c; log(0…

Java架構師軟件架構開發

目錄 1 基于架構的軟件開發導論2 ABSD架構方法論3 ABSD方法論具體實現4 ABSD金融業案例5 基于特定領域的軟件架構開發導論6 DSSA領域分析7 DSSA領域設計和實現8 DSSA國際電商平臺架構案例9 架構思維方法論概述10 AT方法論和案例想學習架構師構建流程請跳轉:Java架構師系統架構…

應用軟件安全編程--25考慮對函數指針進行加密

在某些情況下&#xff0c;攻擊者可以通過修改內存甚至函數指針來執行任意代碼。為了減少這類攻擊的影 響&#xff0c;函數指針應該在運行時進行加密&#xff0c;并在執行程序時才進行解密。 對于考慮對函數指針進行加密的情況&#xff0c;示例1給出了不規范用法(C/C 語言)示…

Unity UI設計 軟件構造實驗報告

實驗1: 仿真系統的UI主界面設計 1.實驗目的 &#xff08;1&#xff09;熟悉Unity中UI界面的設計與編寫&#xff1b; &#xff08;2&#xff09;熟悉UI界面中場景轉換,UI與場景內容相互關聯的方式。 &#xff08;3&#xff09;熟悉Unity中MySQL數據庫的操作 2.實驗內容 新建…

設計模式—單一職責原則

1.背景 單一職責原則&#xff08;SRP&#xff1a;Single responsibility principle&#xff09;又稱單一功能原則&#xff0c;面向對象五個基本原則&#xff08;SOLID&#xff09;之一。它規定一個類應該只有一個發生變化的原因。該原則由羅伯特C馬丁&#xff08;Robert C. Ma…

生成式AI與大語言模型,東軟已經準備就緒

伴隨著ChatGPT的火爆全球&#xff0c;數以百計的大語言模型也爭先恐后地加入了這一戰局&#xff0c;掀起了一場轟轟烈烈的“百模大戰”。毋庸置疑的是&#xff0c;繼方興未艾的人工智能普及大潮之后&#xff0c;生成式AI與大語言模型正在全球開啟新一輪生產力革新的科技浪潮。 …

【C語言】深入理解指針(四)

&#x1f308;write in front :&#x1f50d;個人主頁 &#xff1a; 啊森要自信的主頁 ??真正相信奇跡的家伙&#xff0c;本身和奇跡一樣了不起啊&#xff01; 歡迎大家關注&#x1f50d;點贊&#x1f44d;收藏??留言&#x1f4dd;>希望看完我的文章對你有小小的幫助&am…

帝國cms開發一個泛知識類的小程序的歷程記錄

#帝國cms小程序# 要開發一個泛知識類的小程序&#xff0c;要解決以下幾個問題。 1。知識內容的分類。 2。知識內容的內容展示。 3。知識內容的價格設置。 4。用戶體系&#xff0c;為簡化用戶的操作&#xff0c;在用戶進行下載的時候&#xff0c;請用戶輸入手機號&#xff…

【HarmonyOS】API6上JS實現視頻播放全屏播放時,會回到之前界面

【關鍵字】 API6 / 視頻播放 / 全屏播放異常 【問題現象】 開發者在API6上用JS實現視頻播放器點全屏播放后&#xff0c;不是全屏效果&#xff0c;實際效果是變成了橫屏并返回到首頁。 具體代碼實現是參考video媒體組件指南。 【問題分析】 JS實現視頻播放器有Codelab代碼示…

DedeBIZ 管理系統 DedeV6 v6.2.6 社區版 免費授權版

DedeBIZ 系統&#xff1a;開源、安全、高效的 DedeV6 v6.2.6 社區版 DedeBIZ 系統是基于 PHP 7 版本開發的&#xff0c;具有強大的可擴展性&#xff0c;并且完全開放源代碼。它采用現流行的 Go 語言設計開發&#xff0c;不僅擁有簡單易用、靈活擴展的特性&#xff0c;還具備更…