Linux bash for循环(linux bash 权限不够)

bash Linux bash for循环 循环是编程语言的基本概念之一。当你想要一遍又一遍地运行一系列命令时,循环很方便就可以做到,直到达到某个条件终止 By myfreax 22 Jul 2022

循环是编程语言的基本概念之一。如果你需要一遍又一遍地运行一系列命令时,循环比较方便就可以做到,直到保证某一规范终止。

在比如Bash之类的编程语言中,循环对于自动执行精确性每日每日任务非常有帮助。在Bash辅助制作带有3个最基本循环词法,for循环,while循环,unitl循环。

在教学中,我们在这里详解Bash中for循环基本知识以及用于变更循环流的break和continue语句。

for循环遍历目录并执行特定命令。Bash for循环采用以下形式。LIST目录可以是由空格符分隔的一系列字符串数组,数据信息,命令导出来,二维数组等。

除了bash的for循环外,还有一种比较常见的for循环形式,就是采用C语言设计理念循环的for循环。C-style for循环的词法采用以下词法法形式。

INITIALIZATION一部分仅在循环刚开始的时候推行一次。接着,鉴定TEST一部分。倘若为假,则for循环终止。倘若TEST为真,则运行for循环体内的指令并更新STEP一部分。

for item in [LIST]
do
  [COMMANDS]
done
#C设计理念循环
for ((INITIALIZATION; TEST; STEP))
do
  [COMMANDS]
done

字符串数组

for循环遍历字符串数组列表里的所有单词,并且变量element将设成目前英文单词。您还可以运用for循环迭代更新数组元素。

在下面新土地一个案例中是for循环遍历字符串数组,第二个案例大伙儿定义一个二维数组BOOKS并迭代更新二维数组的每一个元素。

for element in Hydrogen Helium Lithium Beryllium
do
  echo "Element: $element"
done
#
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby')
for book in "${BOOKS[@]}"; do
  echo "Book: $book"
done

范围

您可以使用编码序列关系式特殊数据信息或标志符的范围,依据定义来区域地图起点与终点,范围表达式采用形式是{START..END}

从Bash 4慢慢,还可以在特殊范围此外时还可以特殊增加量。在指定增加量时词法形式是{START..END..INCREMENT}INCREMENT说明增加量。

去掉运用上面的形式遍历一个范围之外,你还可以使用c语言款式的for循环保证同样的效果。

在下面的代码中,依据校准i = 0,以后在每一次迭代更新之前检查是否i ≤ 1000。倘若为true,则打印出i的当前值然后把变量i提高1i ,要不然循环终止。

在下面的事例中,循环将遍历从0到3的所有数字。第二个案例是遍历0到20数据,并设置增加量标值5。

for i in {0..3}
do
  echo "Number: $i"
done
#增加量形式
for i in {0..20..5}
do
  echo "Number: $i"
done
#c设计理念
for ((i = 0 ; i <= 1000 ; i  )); do
  echo "Counter: $i"
done

break与continue声明

break和continue语句适用于控制for循环推行。break语句通常用于在满足某一规范退出循环。

倘若break语句用以置入循环,break语句将终止目前循环然后把自动控制系统交给外场循环。break语句用以并没置入的循环中,则直接退出循环。

continue语句通常用于在满足某一规范绕开循环论的运作。continue语句不易退出循环。

在下面的事例中,大伙儿迭代更新一系列数据信息,当$i等同于2时,continue语句很有可能绕开echo "Number: $i"的运行,并继续下一次迭代更新。

应用break句子的例子中我们使用if语句辨别$element等同于字符串数组'Lithium'时退出循环。

for element in Hydrogen Helium Lithium Beryllium; do
  if [[ "$element" == 'Lithium' ]]; then
    break
  fi
  echo "Element: $element"
done
echo 'All Done!'
#continue声明
for i in {1..5}; do
  if [[ "$i" == '2' ]]; then
    continue
  fi
  echo "Number: $i"
done

批量改文件名文件名

下面的案例演说如何使用Bash for循环能将空格符替换为下横线来重命名文件目录中所有文本文档。

第一行创建一个for循环,并遍历其名称中透着空格符文件信息目录。* *表达式很有可能匹配带有空格符文档。

第二行用于目录中的每个文本文档,并且用mv命令重命名文件,用下横线_拆换空格符。${file// /_}运用shell基本参数扩展来进行字符串替换。

最后一行done说明循环的结束。

for file in * *; do
  mv "$file" "${file// /_}"
done

大批变动文件后缀名

以下案例呈现如何使用Bash for循环能将文件后缀名从.jpeg替换为.jpg。本身就是重命名文件目录要以.jpeg结尾的文本文档。

第一行创建一个for循环,并遍历一个包含.jpeg文档,*.jpeg说明匹配文件后缀名是jpeg文档。

第二行用于目录中的每个最新项目,并且用mv命令同名的文本文档。${file%.jpeg}运用shell基本参数扩展从文件名中删除.jpeg一部分。

最后一行done说明循环的结束。到这里,您应该更好的了解如何使用bash for循环遍历目录。

for file in *.jpeg; do
    mv -- "$file" "${file%.jpeg}.jpg"
done
LINUX

使用PostfixAdmin配置电子邮件服务器(电子邮件服务器是什么)

2023-1-19 9:14:15

LINUX

如何安装和配置Roundcube Webmail(如何安装和配置opencv)

2023-1-19 9:20:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索