Linux中Shell变量$#,$@,$0,$1,$2的含义解释

2023-12-26 29阅读
表示传递给脚本或函数的参数个数2、$@:表示传递给脚本或函数的第n个参数在Linux系统中,表示传递给脚本或函数的参数个数当我们需要向脚本或函数传递参数时。
  • 本文目录导读:
  • 1、$#:表示传递给脚本或函数的参数个数
  • 2、$@:表示所有位置参数列表
  • 3、$0:表示当前shell程序的文件名
  • 4、$1-$9:表示传递给脚本或函数的第n个参数

在Linux系统中,Shell是一种命令行解释器,也是开发者们最为熟悉和常用的工具。而在Shell编程中,变量则是不可或缺的一部分。其中包括了许多特殊变量,如$#、$@、$0、$1和$2等。

,https://www.shiwaiyun.com/article/zb_users/upload/2023/05/20230517055711168427423151647.jpg,的含义解释" class="spotlight">Linux中Shell变量$#,$@,$0,$1,$2的含义解释

这些特殊变量都有着各自独特的作用,在本篇文章中我将详细介绍它们所代表的含义及其相关知识点。

$#:表示传递给脚本或函数的参数个数

当我们需要向脚本或函数传递参数时,可以通过使用"$#"来获取到传入参数的个数。

例如,在一个名为test.sh的shell文件中输入以下代码:

```

,https://www.shiwaiyun.com/article/zb_users/upload/2023/05/20230516231132168424989236926.jpg,的含义解释" class="spotlight">Linux中Shell变量$#,$@,$0,$1,$2的含义解释

#!/bin/bash

echo "共接收到 $# 个参数"

那么执行该文件并附加两个参数后(./test.sh param1 param2),就会输出"共接收到 2 个参数"。

$@:表示所有位置参数列表

与"$#"类似,"$@"也是用于获取脚本或函数所接收到所有位置参 数列表,并以数组形式呈现出来。

下面我们看一个例子:

for i in "$@"

do

echo $i

done

当执行上述脚本并附加三个参数后(./test.sh param1 param2 param3),就会依次输出"param1"、 "param2"和"param3"。

$0:表示当前shell程序的文件名

"$0"是用于获取当前Shell程序的文件名,可以理解为“命令行字符串”。

echo "当前执行的脚本名称为 $0"

那么执行该文件时,就会输出“当前执行的脚本名称为 ./test.sh”。

$1-$9:表示传递给脚本或函数的第n个参数

在需要向Shell程序中传递多个参数时,我们可以使用$1、$2等来获取所接收到 的第n个参数。其中$n代表了传入变量列表中对应位置上的数字。

echo "第一个参数: $1"

echo "第二个参数: $2"

那么执行该文件并附加两个参数后(./test.sh hello world),就会输出:

第一个参数: hello

第二个参数: world

综上所述,这些特殊变量都是Shell编程中不可或缺且十分实用 的一部分。它们能够帮助开发者更方便地处理各种任务,并提高工作效率。因此,在学习Shell编程时,我们一定要深入理解它们的含义和用法,以便更好地运用到实际工作中。

最后,希望大家能够通过本篇文章对Shell变量$#、$@、$0、$1和 $2有所了解,并在日常开发中灵活应用。

文章版权声明:除非注明,否则均为游侠云资讯原创文章,转载或复制请以超链接形式并注明出处。

目录[+]