自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux Bash Shell-小循環(huán)大用處

系統(tǒng) Linux
循環(huán)是一門與生俱來(lái)的藝術(shù),它可以使你的工作更簡(jiǎn)單,并幫助你相對(duì)輕松地自動(dòng)化重復(fù)性任務(wù)。

當(dāng)你可以讓 for 循環(huán)為你執(zhí)行相同的代碼時(shí),為什么還要在你的 shell 腳本中一次又一次地運(yùn)行相同的代碼呢?

循環(huán)是一門與生俱來(lái)的藝術(shù),它可以使你的工作更簡(jiǎn)單,并幫助你相對(duì)輕松地自動(dòng)化重復(fù)性任務(wù)。

想象一種情況,你需要更新一系列數(shù)字或文本,不要手動(dòng)執(zhí)行,而是讓系統(tǒng)為你執(zhí)行。這就是循環(huán)的力量以及它為你帶來(lái)的好處。

循環(huán)作為一種函數(shù),幾乎在所有編程語(yǔ)言中都可用。Linux 的 Bash 也不例外。

這篇是一個(gè)指南文章,解釋了如何在 shell 腳本中使用 for 循環(huán)。

for 循環(huán)結(jié)構(gòu)

在 shell 腳本中使用 for 循環(huán)相當(dāng)簡(jiǎn)單,你可以操縱結(jié)構(gòu)來(lái)實(shí)現(xiàn)不同的目標(biāo)。

基本結(jié)構(gòu)如下:

for item in [LIST]
do
[COMMANDS]
done

使用循環(huán),你可以根據(jù)時(shí)間的需要在數(shù)字和字符值之間循環(huán)。

這是 shell 腳本中 for 循環(huán)的結(jié)構(gòu):

for VARIABLE in 1 2 3 4 5 .. N
do
command1
command2
commandN
done

你可以在第一行定義迭代次數(shù)。這樣,你將提及起始值和結(jié)束值。

迭代次數(shù)由你指定的值確定,而do語(yǔ)句后面的代碼是生成的循環(huán)值。

在 Linux Bash 中創(chuàng)建和運(yùn)行 for 循環(huán)

打開(kāi) Linux 終端開(kāi)始編寫代碼。

文本編輯器用于存儲(chǔ) shell 腳本,該腳本在執(zhí)行時(shí)打印所需的結(jié)果。出于說(shuō)明目的,本指南中的命令是在nano文本編輯器中編寫的。

在終端命令行中輸入nano以打開(kāi)文本編輯器,然后輸入 shell 腳本名稱。

linuxmi@linuxmi:~/www.linuxmi.com$ nano LinuxMi.com.sh

你可以將 shell 腳本的名稱更改為你喜歡的任何名稱。擴(kuò)展名為sh,因?yàn)槟銓⒋鎯?chǔ)一個(gè) shell 腳本。

使用 for 循環(huán)打印整數(shù)

在本節(jié)中,以下代碼將演示如何以不同方式打印整數(shù)值。要在 shell 腳本中使用 for 循環(huán)來(lái)打印整數(shù),你可以嘗試其中一些代碼示例。

1.循環(huán)代碼打印一組數(shù)字

編輯器打開(kāi)后,就該編寫代碼了。

#!/usr/bin/bash
for i in 1 2 3
do
echo "Current # $i"
done

輸出:

說(shuō)明:

  • i = 存儲(chǔ)迭代值的變量名
  • 1 2 3 = shell 腳本中 for 循環(huán)的迭代次數(shù)
  • do = 執(zhí)行一組特定動(dòng)作的命令
  • echo = 打印旁邊定義的結(jié)果
  • done = 循環(huán)結(jié)束

按Ctrl + X將代碼保存在文本編輯器中。保存并退出腳本。

在執(zhí)行代碼之前,你必須更改 shell 腳本的權(quán)限。

輸入chmod +x后跟你的 shell 腳本文件名:

linuxmi@linuxmi:~/www.linuxmi.com$ chmod +x LinuxMi.com.sh

授予權(quán)限后,通過(guò)鍵入以下內(nèi)容在 shell 腳本中運(yùn)行 for 循環(huán):

linuxmi@linuxmi:~/www.linuxmi.com$ ./LinuxMi.com.sh

輸出將打印在終端窗口中。

2. 打印一組數(shù)字的替代方法

在 shell 腳本中定義 for 循環(huán)還有其他方法。你還可以使用大括號(hào)指定循環(huán)迭代的開(kāi)始值和結(jié)束值。

下面是代碼結(jié)構(gòu):

for i in {1..3} # for循環(huán)定義了一個(gè)變量,以及要通過(guò)一個(gè)循環(huán)進(jìn)行多少次迭代
do
echo "當(dāng)前值 # $i: 示例 2"
done

循環(huán)將運(yùn)行 3 次,值將按以下方式打?。?

3. 使用步長(zhǎng)值的循環(huán)代碼

如果你想在迭代中不連續(xù)地移動(dòng),你可以在循環(huán)中定義步長(zhǎng)值。根據(jù)指定的值,輸出將有一個(gè)固定的間隙。

例如:

for i in {1..10..2}
do
echo "Number = $i"
done

說(shuō)明:

  • i = 存儲(chǔ)迭代的變量
  • 1..10 = 運(yùn)行循環(huán)的迭代次數(shù)
  • 2 = 階躍值
  • do = 命令打印輸出
  • echo = 打印命令
  • done = 循環(huán)的退出命令

輸出:

輸出相差 2,這是在 step 語(yǔ)句中指定的。

使用 for 循環(huán)打印字符值

shell 腳本中的 for 循環(huán)不僅限于整數(shù)。在 Bash 中,你可以使用 for 循環(huán)來(lái)有效地遍歷字符和字符串值。

1. 遍歷字符串

這是一個(gè)基本示例,說(shuō)明如何遍歷一些字符串值(在 for 語(yǔ)句中定義):

for name in LinuxMi linuxmi.com www.linuxmi.com
do
echo "My name is $name"
done

說(shuō)明:

  • name = 存儲(chǔ)字符串值的變量
  • do = 命令打印輸出
  • echo = 打印命令
  • done = 循環(huán)的退出命令

輸出:

這個(gè) for 循環(huán)將迭代 3 次,因?yàn)樵趂or語(yǔ)句中只指定了三個(gè)字符串值。

2. 循環(huán)遍歷有條件的字符串

如果你想傳遞一些邏輯條件來(lái)中途終止循環(huán)怎么辦?為此,你可以使用邏輯語(yǔ)句,例如IF語(yǔ)句。IF 語(yǔ)句控制循環(huán)的工作方式以及結(jié)果將打印什么輸出。

for distro in LinuxMi Debian CentOS Ubuntu; do
if [[ "$distro" == 'CentOS' ]]; then
break
fi
echo "distro: $distro"
done
echo '全部完成!'

只要 distro 的值等于 CentOS,循環(huán)就會(huì)終止,并打印輸出。循環(huán)運(yùn)行直到不再滿足條件。

由于 CentOS 在值列表中排名第三,因此循環(huán)將運(yùn)行兩次迭代,然后打印最終輸出全部完成!

在 Linux Bash 中運(yùn)行循環(huán)

循環(huán)是 Linux shell 結(jié)構(gòu)中必不可少的一部分,它可以極大地增強(qiáng) Linux 腳本的功能。

如果你必須打印重復(fù)的輸出,沒(méi)有什么比 Bash 腳本中的循環(huán)更好的了。正如我們前面提到的,幾乎所有編程語(yǔ)言都可以使用循環(huán),Python 也不例外。減少重復(fù)并遵循 DRY(不要重復(fù)自己)代碼。

責(zé)任編輯:龐桂玉 來(lái)源: 良許Linux
相關(guān)推薦

2009-12-01 08:54:30

Linux發(fā)行版

2009-03-15 10:01:54

Firefox瀏覽器分頁(yè)

2020-10-14 10:58:48

JavaScript工具Gitee

2025-04-23 09:47:57

開(kāi)發(fā)場(chǎng)景請(qǐng)求

2021-12-26 22:53:42

5G基站技術(shù)

2010-06-23 17:34:03

Linux Bash

2010-06-23 16:35:50

Linux Bash

2010-06-23 17:37:14

Linux Bash

2022-03-28 11:10:35

ShellBash forLinux

2019-08-05 13:41:24

5GVRAR

2010-06-23 17:16:33

Linux Bash

2010-06-23 16:31:10

Linux Bash

2010-06-23 17:29:07

Linux Bash

2023-07-27 17:41:02

BashZshFish

2010-06-23 11:09:14

Linux Bash

2010-06-23 16:05:36

Linux Bash

2022-08-21 16:52:27

Linux虛擬內(nèi)存

2010-06-23 15:55:36

Linux Bash

2010-06-23 17:07:47

Linux Bash
點(diǎn)贊
收藏

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