如何在 Linux Shell 脚本中获取运行参数

Posted on Tue, 01 Apr 2025 15:23:44 +0800 by LiangMingJian


需求

在编写 Linux 运维脚本时,有概率会希望在运行脚本时传入一定参数,让脚本根据传入值完成不同的功能。

使用:$n

功能:用于接收 Shell 脚本文件执行时传入的参数,$0 用于获取当前脚本文件名称,$1~$9 代表输入的第 1 到第 9 个参数。

需要注意的是,第 10 个以上的参数需要使用 ${10}, ${11},用中括号包裹数字。

#!/bin/bash

echo "脚本的名称是:$0"
echo "第 1 个参数是:$1"
echo "第 2 个参数:$2"
echo "第 10 个参数:${11}"

执行上述脚本有:

>>> sh work.sh 1 2 3 4 5 6 7 8 9 10
脚本的名称是:work.sh
第 1 个参数是:1
第 2 个参数:2
第 10 个参数:10

使用:$#

功能:获取 Shell 脚本所有输入参数的个数。

#!/bin/bash

echo "参数个数:${#}"

执行上述脚本有:

>>> sh work.sh 1 2 3 4 5 6 7 8 9 10
参数个数:10

使用:$* 和 $@

功能:获取所有传入参数,并使用 "$*" 以字符串输出参数,或使用 "$@" 以数组输出参数。

#!/bin/bash

echo "以字符串输出参数"
echo "$*"        
echo "************************"
echo "以数组输出参数"              
for item in "$@"
do
    echo ${item}
done

执行上述脚本有:

>>> sh work.sh 1 2 3 4 5 6 7 8 9 10
以字符串输出参数
1 2 3 4 5 6 7 8 9 10
************************
以数组输出参数
1
2
3
4
5
6
7
8
9
10