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

揭秘 Bash 腳本中如何檢查參數(shù)的數(shù)量

系統(tǒng)
本教程使用多個(gè)示例展示了在Bash腳本中使用參數(shù)數(shù)量的多種用途,旨在幫助新的Bash用戶。

檢查腳本中傳遞的參數(shù)總數(shù)是非常重要的,它可以用于各種目的,如錯(cuò)誤處理、根據(jù)參數(shù)數(shù)量提供消息以及幫助用戶傳遞正確數(shù)量的參數(shù)。在Bash中,可以通過(guò)兩種方法來(lái)計(jì)算參數(shù)的總數(shù)。一種是使用”$#”,另一種是使用循環(huán)。本教程將展示檢查參數(shù)數(shù)量的方法,并展示如何將該值用于不同的目的。

本教程的這一部分將使用多個(gè)示例展示檢查參數(shù)數(shù)量的用途。

示例1:使用”$#”計(jì)算參數(shù)的總數(shù)

創(chuàng)建一個(gè)包含以下腳本的Bash文件,它將計(jì)算參數(shù)的總數(shù),并使用”for”循環(huán)打印參數(shù)值。

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

#存儲(chǔ)參數(shù)的數(shù)量
len=$#
echo "參數(shù)總數(shù): $len"
echo "參數(shù)值為:"
#打印參數(shù)值
for val in $@
do
echo $val
done

在使用參數(shù)值66、93139和123執(zhí)行腳本后,將出現(xiàn)以下輸出:

示例2:根據(jù)參數(shù)長(zhǎng)度打印參數(shù)值

創(chuàng)建一個(gè)包含以下腳本的Bash文件,它會(huì)計(jì)算傳遞給腳本的參數(shù)總數(shù),并根據(jù)參數(shù)數(shù)量打印參數(shù)值。如果沒(méi)有傳遞任何參數(shù)給腳本,將會(huì)打印錯(cuò)誤消息。

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

#存儲(chǔ)參數(shù)的數(shù)量

len=$#

#檢查參數(shù)的總數(shù)

if [ $len -eq 0 ]; then

echo "未提供任何參數(shù)"

fi

#初始化計(jì)數(shù)器

counter=0

#根據(jù)計(jì)數(shù)器的值打印參數(shù)值

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

輸出中腳本執(zhí)行了四次。當(dāng)沒(méi)有給出參數(shù)時(shí),打印了錯(cuò)誤消息。當(dāng)給出一個(gè)、兩個(gè)和三個(gè)參數(shù)值時(shí),打印了參數(shù)值。

示例3:計(jì)算參數(shù)值的平均數(shù)

創(chuàng)建一個(gè)Bash文件,包含以下腳本,用于計(jì)算參數(shù)值的平均數(shù)。腳本將計(jì)算傳遞給它的五個(gè)參數(shù)值的平均值。腳本中使用”bc”命令來(lái)計(jì)算平均值。如果沒(méi)有傳遞參數(shù)給腳本,則會(huì)打印錯(cuò)誤消息。

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

#檢查參數(shù)的總數(shù)
if [ $# -eq 5 ]; then

#計(jì)算參數(shù)值的總和
sum=$(($1+$2+$3+$4+$5))

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

#打印平均值和參數(shù)值
echo "參數(shù)值為:$1 $2 $3 $4 $5"
echo "平均值:$avg"

else

#打印錯(cuò)誤消息
echo "參數(shù)的總數(shù)必須為5。"

fi

腳本在輸出中執(zhí)行了兩次。當(dāng)沒(méi)有給定參數(shù)時(shí),會(huì)打印錯(cuò)誤消息。當(dāng)給定了五個(gè)參數(shù)值時(shí),會(huì)打印參數(shù)值的平均值。

示例4:基于參數(shù)值打印錯(cuò)誤消息

創(chuàng)建一個(gè)Bash文件,其中包含以下腳本,根據(jù)”if”條件打印三條消息之一。第一個(gè)”if”條件檢查參數(shù)的數(shù)量是否為2。第二個(gè)”if”條件檢查參數(shù)值的長(zhǎng)度是否小于5。第三個(gè)”if”條件檢查第二個(gè)參數(shù)是否為正數(shù)。

#讀取參數(shù)值
name=$1
price=$2

#計(jì)算第二個(gè)參數(shù)的長(zhǎng)度
len=${#name}

#檢查參數(shù)總數(shù)
if [ $# -ne 2 ]; then
echo "參數(shù)總數(shù)必須為2個(gè)。"
exit

#檢查第一個(gè)參數(shù)的長(zhǎng)度
elif [ $len -lt 5 ]; then
echo "產(chǎn)品名稱必須至少包含5個(gè)字符。"
exit

#檢查第二個(gè)參數(shù)的值
elif [ $2 -lt 0 ]; then
echo "價(jià)格值必須為正數(shù)。"
exit
fi

#打印參數(shù)值
echo "產(chǎn)品$name的價(jià)格為TK. $price"

腳本在輸出中執(zhí)行了四次。當(dāng)沒(méi)有參數(shù)傳遞時(shí),會(huì)打印錯(cuò)誤消息”參數(shù)的總數(shù)必須為2″。當(dāng)?shù)谝粋€(gè)參數(shù)的長(zhǎng)度小于5時(shí),會(huì)打印錯(cuò)誤消息”產(chǎn)品名稱必須至少為5個(gè)字符長(zhǎng)”。當(dāng)?shù)诙€(gè)參數(shù)為負(fù)數(shù)時(shí),會(huì)打印錯(cuò)誤消息”價(jià)格值必須為正數(shù)”。

責(zé)任編輯:趙寧寧 來(lái)源: Linux迷
相關(guān)推薦

2023-10-19 14:52:27

2022-11-25 07:53:26

bash腳本字符串

2022-12-01 08:10:49

Bash腳本參數(shù)

2021-05-11 07:50:31

BashShell腳本

2014-06-17 10:02:58

Bash Getopt命令行

2022-11-30 07:47:00

Bash腳本

2018-11-12 14:35:47

BashhereLinux

2021-08-30 07:50:42

腳本語(yǔ)言命令行

2016-12-20 09:30:22

shell腳本linux

2023-08-23 12:12:45

BashLinux

2022-11-03 08:13:52

echo 命令Linux

2022-11-23 08:14:42

bash 腳本test 命令

2023-02-10 09:46:04

bash腳本變量

2017-04-13 10:51:17

Bash建議

2022-03-30 09:32:32

BashtestLinux

2022-05-30 10:31:34

Bash腳本Linux

2022-12-06 08:27:50

Bash腳本字符串

2019-06-17 08:00:55

multipassbash腳本

2020-06-17 17:29:11

BashLinux

2020-07-01 18:31:14

Linuxbash永遠(yuǎn)循環(huán)
點(diǎn)贊
收藏

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