揭秘 Bash 脚本中如何检查参数的数量

系统
本教程使用多个示例展示了在Bash脚本中使用参数数量的多种用途,旨在帮助新的Bash用户。

检查脚本中传递的参数总数是非常重要的,它可以用于各种目的,如错误处理、根据参数数量提供消息以及帮助用户传递正确数量的参数。在Bash中,可以通过两种方法来计算参数的总数。一种是使用”$#”,另一种是使用循环。本教程将展示检查参数数量的方法,并展示如何将该值用于不同的目的。

本教程的这一部分将使用多个示例展示检查参数数量的用途。

示例1:使用”$#”计算参数的总数

创建一个包含以下脚本的Bash文件,它将计算参数的总数,并使用”for”循环打印参数值。

#!/bin/bash
# Linux迷 www.linuxmi.com

#存储参数的数量
len=$#
echo "参数总数: $len"
echo "参数值为:"
#打印参数值
for val in $@
do
echo $val
done

在使用参数值66、93139和123执行脚本后,将出现以下输出:

示例2:根据参数长度打印参数值

创建一个包含以下脚本的Bash文件,它会计算传递给脚本的参数总数,并根据参数数量打印参数值。如果没有传递任何参数给脚本,将会打印错误消息。

#!/bin/bash
# Linux迷 www.linuxmi.com

#存储参数的数量

len=$#

#检查参数的总数

if [ $len -eq 0 ]; then

echo "未提供任何参数"

fi

#初始化计数器

counter=0

#根据计数器的值打印参数值

while (( $counter < $len ))

do

if [ $counter -lt 1 ]; then

echo $1

elif [ $counter -lt 2 ]; then

echo $2

elif [ $counter -lt 3 ]; then

echo $3

fi

((counter++))

done

输出中脚本执行了四次。当没有给出参数时,打印了错误消息。当给出一个、两个和三个参数值时,打印了参数值。

示例3:计算参数值的平均数

创建一个Bash文件,包含以下脚本,用于计算参数值的平均数。脚本将计算传递给它的五个参数值的平均值。脚本中使用”bc”命令来计算平均值。如果没有传递参数给脚本,则会打印错误消息。

#!/bin/bash
# Linux迷 www.linuxmi.com

#检查参数的总数
if [ $# -eq 5 ]; then

#计算参数值的总和
sum=$(($1+$2+$3+$4+$5))

#计算平均值
avg=$(($sum/5 | bc -l))

#打印平均值和参数值
echo "参数值为:$1 $2 $3 $4 $5"
echo "平均值:$avg"

else

#打印错误消息
echo "参数的总数必须为5。"

fi

脚本在输出中执行了两次。当没有给定参数时,会打印错误消息。当给定了五个参数值时,会打印参数值的平均值。

示例4:基于参数值打印错误消息

创建一个Bash文件,其中包含以下脚本,根据”if”条件打印三条消息之一。第一个”if”条件检查参数的数量是否为2。第二个”if”条件检查参数值的长度是否小于5。第三个”if”条件检查第二个参数是否为正数。

#读取参数值
name=$1
price=$2

#计算第二个参数的长度
len=${#name}

#检查参数总数
if [ $# -ne 2 ]; then
echo "参数总数必须为2个。"
exit

#检查第一个参数的长度
elif [ $len -lt 5 ]; then
echo "产品名称必须至少包含5个字符。"
exit

#检查第二个参数的值
elif [ $2 -lt 0 ]; then
echo "价格值必须为正数。"
exit
fi

#打印参数值
echo "产品$name的价格为TK. $price"

脚本在输出中执行了四次。当没有参数传递时,会打印错误消息”参数的总数必须为2″。当第一个参数的长度小于5时,会打印错误消息”产品名称必须至少为5个字符长”。当第二个参数为负数时,会打印错误消息”价格值必须为正数”。

责任编辑:赵宁宁 来源: Linux迷
相关推荐

2022-11-25 07:53:26

bash脚本字符串

2023-10-19 14:52:27

2022-12-01 08:10:49

Bash脚本参数

2021-05-11 07:50:31

BashShell脚本

2014-06-17 10:02:58

Bash Getopt命令行

2022-11-30 07:47:00

Bash脚本

2021-08-30 07:50:42

脚本语言命令行

2016-12-20 09:30:22

shell脚本linux

2018-11-12 14:35:47

BashhereLinux

2022-11-03 08:13:52

echo 命令Linux

2022-11-23 08:14:42

bash 脚本test 命令

2023-08-23 12:12:45

BashLinux

2023-02-10 09:46:04

bash脚本变量

2022-03-30 09:32:32

BashtestLinux

2022-12-06 08:27:50

Bash脚本字符串

2019-06-17 08:00:55

multipassbash脚本

2020-07-01 18:31:14

Linuxbash永远循环

2017-04-13 10:51:17

Bash建议

2020-06-17 17:29:11

BashLinux

2022-11-03 10:46:58

Linux端口
点赞
收藏

51CTO技术栈公众号