Shell for循环与数组应用介绍
Shell编程中的循环与数组是非常重要的知识点,它们能够极大的提高Shell脚本编程效率,本文将详细讲解Shell中的for循环与数组的应用。
Shell for循环
Shell中的for循环语法如下:
for 变量名 in 列表
do
命令
done
变量名为循环计数器,列表则是要循环的数据集合,每次循环会取出一个元素赋值给变量名,并在循环体内执行相应的命令,直到列表中的元素全部遍历完成。
以下是一个简单的for循环示例:
#!/bin/bash
for i in {1..5}; do
echo "循环变量i为: $i"
done
执行结果如下:
循环变量i为: 1
循环变量i为: 2
循环变量i为: 3
循环变量i为: 4
循环变量i为: 5
上述示例中,for循环遍历了1到5之间的数字,每次赋值给变量$i,并在循环体中打印输出了循环变量。
Shell 数组
Shell中的数组可以存储一个或多个值,可以通过下标访问数组中的元素。
定义数组
定义数组的语法如下:
array_name=(value1 value2 ... valuen)
以下是一个简单的数组定义示例:
#!/bin/bash
arr=("apple" "banana" "orange" "lemon")
echo "数组第2个元素为: ${arr[1]}"
执行结果如下:
数组第2个元素为: banana
数组遍历
可以使用for循环来遍历数组中的元素:
#!/bin/bash
arr=("apple" "banana" "orange" "lemon")
for i in ${arr[@]}; do
echo "数组元素为: $i"
done
执行结果如下:
数组元素为: apple
数组元素为: banana
数组元素为: orange
数组元素为: lemon
上述示例中,使用for循环遍历了数组元素,并在循环体内打印输出了数组中的元素。
数组长度
可以使用以下方式获取数组的长度:
${#array_name[@]}
${#array_name[*]}
${#array_name[n]}
其中,#${array_name[@]}
和#${array_name[*]}
返回数组长度,${#array_name[n]}
返回数组下标为n的元素的长度。
以下是一个简单的获取数组长度示例:
#!/bin/bash
arr=("apple" "banana" "orange" "lemon")
echo "数组长度为: ${#arr[@]}"
执行结果如下:
数组长度为: 4
内置命令seq
Shell中有一个内置命令seq,可以方便地生成数字序列,语法如下:
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
以下是一个简单的seq生成数字序列示例:
#!/bin/bash
for i in $(seq 1 5); do
echo "循环变量i为: $i"
done
执行结果如下:
循环变量i为: 1
循环变量i为: 2
循环变量i为: 3
循环变量i为: 4
循环变量i为: 5
上述示例中,使用seq生成1到5的数字序列,并通过for循环遍历序列中的每一个数字。
示例说明
示例1:计算1到100之间的和
以下是一个计算1到100之间的和的示例:
#!/bin/bash
sum=0
for i in $(seq 1 100); do
sum=$(($sum+$i))
done
echo "1到100之间的和为: $sum"
执行结果如下:
1到100之间的和为: 5050
示例2:遍历文件名为日期的日志文件
以下是一个遍历文件名为日期的日志文件的示例:
#!/bin/bash
logs=`ls /path/to/logs/*.log`
for log in $logs; do
log_date=`basename $log .log`
echo "遍历到日期为$log_date的日志文件"
done
上述示例中,使用ls命令获取日志文件列表,并使用for循环遍历日志文件列表。在循环体中,通过basename命令获取日志文件名中的日期,并打印输出该日期的日志文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:shell for循环与数组应用介绍 - Python技术站