成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Shell 教程:編寫 BASH 'for'循環的正確姿勢

系統 Linux
在編程或腳本語言中,Bash 提供了幾種重復代碼的方法 - 稱為循環的過程 - 其中 for 循環重復代碼的某個部分。這允許運行一系列命令,直到滿足特定條件。在本指南中,我們將向您介紹如何編寫 Bash for 循環。

本文我們要學會什么

  • 在 Bash for循環中, do和done之間的所有語句對列表或數字范圍中的每個項目執行一次。
  • 對于大列表,使用in {list} 在起點和終點之間循環。使用省略號迭代整個數字范圍,例如{1..10} 中的數字。
  • 要跳過某些數字,請在范圍內添加第三個數字。例如,使用{0..100..10}僅列出每 10 個數字。

在編程或腳本語言中,Bash 提供了幾種重復代碼的方法 - 稱為循環的過程 - 其中 for 循環重復代碼的某個部分。這允許運行一系列命令,直到滿足特定條件。在本指南中,我們將向您介紹如何編寫 Bash for 循環。

如何循環遍歷列表

諸如 Bash 之類的腳本語言具有與其他語言相似的編程結構。例如,導入參數從鍵盤獲取輸入并將這些輸入存儲為變量,然后根據輸入參數的值執行特定操作。

下面是一個名為linuxmi.sh 的簡單示例腳本:

#!/bin/bash
for number in 1 2 3 4 5
do
echo $number
done
exit 0

Bash 使用for循環的方式與其他編程和腳本語言處理for循環的方式有些不同。讓我們分解腳本。

在 BASH for循環中,do和done之間的所有語句對列表中的每個項目都執行一次。在此示例中,列表是in單詞之后的所有內容— 數字1 2 3 4 5。

每次循環迭代時,列表中的下一個值將插入到單詞for之后指定的變量中。在上面的循環中,變量被稱為number。

echo語句 在屏幕上顯示信息。因此,此示例采用數字 1 到 5,并將每個數字一一輸出到屏幕:

如何在起點和終點之間循環

這個 linuxmi.sh 腳本的問題在于,如果您想處理一個更大的列表(例如,1 到 500),則鍵入所有數字將花費很長時間。相反,指定一個起點和終點就簡單了:

#!/bin/bash
for number in {1..10}
do
echo "$number "
done
exit 0

規則是一樣的。in這個詞后面的值組成了要迭代的列表,列表中的每個值都放在變量(即number)中,每次循環迭代時,都會執行do和done之間的語句。

主要區別在于列表的形成方式。大括號表示一個范圍,在本例這種情況下,范圍是 1 到 10(兩個點分隔范圍的開始和結束)。

因此,此示例遍歷 1 到 10 之間的每個數字并將該數字輸出到屏幕。如下:

相同的循環可以這樣編寫,語法與第一個示例相同:

for number in 1 2 3 4 5 6 7 8 9 10

如何跳過范圍內的數字

前面的示例展示了如何在起點和終點之間循環。以下是如何跳過范圍內的數字。

例如,要在 0 和 100 之間循環,但只顯示 10 的倍數的數字,請使用以下腳本獲取此輸出:

#!/bin/bash
for number in {0..100..10}
do
echo "$number "
done
exit 0

規則是一樣的。在do和done之間有一個列表、一個變量和一組要執行的語句。這次的列表如下所示:{0..100..10}。

大括號中第一個數字是 0,結束數字是 100。第三個數字 (10) 是列表中將跳過的項目數。

因此,上面的示例顯示以下輸出:

一個實際的例子

For 循環不僅僅迭代數字列表。例如,使用其他命令的輸出作為列表。

以下示例顯示如何將音頻文件從MP3轉換為WAV:

#!/bin/bash
for file in ./*.mp3
do
mpg -w ./wavs/"${file}".wav "$file"
done

此示例中的列表是當前文件夾中每個擴展名為 .MP3 的文件,變量是一個文件。

mpg 命令將 MP3 文件轉換為 WAV。但是,您可能需要先使用包管理器安裝此工具。

責任編輯:龐桂玉 來源: Linux公社
相關推薦

2021-04-02 12:37:53

RestfulAPI接口架構

2021-10-08 08:38:00

Pipelineshell命令Jenkins

2018-01-11 15:31:39

命令Linux關機

2016-05-09 10:41:03

算法分析開發

2017-02-23 15:37:44

OptionObject容器

2017-07-10 13:09:45

前端Flexbox

2017-03-16 11:39:33

Openstack源碼姿勢

2023-01-30 07:41:43

2022-03-24 08:57:30

Linux BashShell代碼

2021-01-08 08:10:34

MySQL表空間回收

2017-10-12 11:30:34

Spark代碼PR

2016-12-12 08:48:24

2019-12-27 15:58:57

大數據IT互聯網

2021-09-15 16:20:02

Spring BootFilterJava

2024-09-25 08:22:06

2019-10-30 17:06:50

AWS物聯網IoT

2020-02-24 15:26:40

Python短信免費

2017-06-19 17:43:04

網絡帶寬網絡設計

2016-01-05 11:28:20

按需付費云計算docker

2025-03-11 00:55:00

Spring停機安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产伦一区二区三区观看方式 | 亚洲风情在线观看 | 久久国产欧美一区二区三区精品 | 日本久草视频 | 影音av | 精品av | 欧美 日韩 国产 一区 | 欧美激情在线精品一区二区三区 | 亚洲高清av在线 | 高清黄色毛片 | 亚洲一级在线 | 黄色日批视频 | 成人午夜视频在线观看 | h视频免费在线观看 | 激情久久网 | 欧美日韩精品中文字幕 | 欧美欧美欧美 | 美女张开腿露出尿口 | 伊人国产精品 | 欧美一区视频 | 欧美日韩国产三级 | 亚洲国产精品一区二区久久 | 精品国产伦一区二区三区观看体验 | 麻豆一区 | 国产成人精品久久二区二区91 | 免费影视在线观看 | 久久国产精品视频 | 欧美成视频 | 精品在线一区 | 国产精品一区二区三区四区 | 久久国产麻豆 | 中文字幕亚洲一区二区三区 | 96国产精品久久久久aⅴ四区 | 国产精品成人在线 | 夜夜精品浪潮av一区二区三区 | 亚洲三级在线观看 | 国产精品五区 | 在线免费观看视频你懂的 | 精品视频在线一区 | 亚洲成人二区 | 99精品国产在热久久 |