偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Shell 教程:編寫 BASH 'for'循環(huán)的正確姿勢(shì)

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

本文我們要學(xué)會(huì)什么

  • 在 Bash for循環(huán)中, do和done之間的所有語句對(duì)列表或數(shù)字范圍中的每個(gè)項(xiàng)目執(zhí)行一次。
  • 對(duì)于大列表,使用in {list} 在起點(diǎn)和終點(diǎn)之間循環(huán)。使用省略號(hào)迭代整個(gè)數(shù)字范圍,例如{1..10} 中的數(shù)字。
  • 要跳過某些數(shù)字,請(qǐng)?jiān)诜秶鷥?nèi)添加第三個(gè)數(shù)字。例如,使用{0..100..10}僅列出每 10 個(gè)數(shù)字。

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

如何循環(huán)遍歷列表

諸如 Bash 之類的腳本語言具有與其他語言相似的編程結(jié)構(gòu)。例如,導(dǎo)入?yún)?shù)從鍵盤獲取輸入并將這些輸入存儲(chǔ)為變量,然后根據(jù)輸入?yún)?shù)的值執(zhí)行特定操作。

下面是一個(gè)名為linuxmi.sh 的簡(jiǎn)單示例腳本:

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

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

在 BASH for循環(huán)中,do和done之間的所有語句對(duì)列表中的每個(gè)項(xiàng)目都執(zhí)行一次。在此示例中,列表是in單詞之后的所有內(nèi)容— 數(shù)字1 2 3 4 5。

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

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

如何在起點(diǎn)和終點(diǎn)之間循環(huán)

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

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

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

主要區(qū)別在于列表的形成方式。大括號(hào)表示一個(gè)范圍,在本例這種情況下,范圍是 1 到 10(兩個(gè)點(diǎn)分隔范圍的開始和結(jié)束)。

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

相同的循環(huán)可以這樣編寫,語法與第一個(gè)示例相同:

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

如何跳過范圍內(nèi)的數(shù)字

前面的示例展示了如何在起點(diǎn)和終點(diǎn)之間循環(huán)。以下是如何跳過范圍內(nèi)的數(shù)字。

例如,要在 0 和 100 之間循環(huán),但只顯示 10 的倍數(shù)的數(shù)字,請(qǐng)使用以下腳本獲取此輸出:

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

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

大括號(hào)中第一個(gè)數(shù)字是 0,結(jié)束數(shù)字是 100。第三個(gè)數(shù)字 (10) 是列表中將跳過的項(xiàng)目數(shù)。

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

一個(gè)實(shí)際的例子

For 循環(huán)不僅僅迭代數(shù)字列表。例如,使用其他命令的輸出作為列表。

以下示例顯示如何將音頻文件從MP3轉(zhuǎn)換為WAV:

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

此示例中的列表是當(dāng)前文件夾中每個(gè)擴(kuò)展名為 .MP3 的文件,變量是一個(gè)文件。

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

責(zé)任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2021-04-02 12:37:53

RestfulAPI接口架構(gòu)

2017-02-23 15:37:44

OptionObject容器

2016-05-09 10:41:03

算法分析開發(fā)

2018-01-11 15:31:39

命令Linux關(guān)機(jī)

2021-10-08 08:38:00

Pipelineshell命令Jenkins

2017-07-10 13:09:45

前端Flexbox

2017-03-16 11:39:33

Openstack源碼姿勢(shì)

2023-01-30 07:41:43

2022-03-24 08:57:30

Linux BashShell代碼

2016-12-12 08:48:24

2019-12-27 15:58:57

大數(shù)據(jù)IT互聯(lián)網(wǎng)

2024-09-25 08:22:06

2021-09-15 16:20:02

Spring BootFilterJava

2017-10-12 11:30:34

Spark代碼PR

2021-01-08 08:10:34

MySQL表空間回收

2019-10-30 17:06:50

AWS物聯(lián)網(wǎng)IoT

2015-07-13 11:32:09

PHP程序員正確姿勢(shì)

2019-11-26 09:36:02

互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2020-09-04 15:38:19

Web前端開發(fā)項(xiàng)目

2023-01-06 08:24:00

PandasPython
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)