Shell特殊变量(Shell $#、$*、$@、$?、$$)的使用

Shell特殊变量的使用攻略

Shell特殊变量是一些预定义的变量,用于在Shell脚本中获取一些特定的信息。在本攻略中,我们将详细讲解Shell特殊变量$#$*$@$?$$的使用方法,并提供示例说明。

1. $# - 命令行参数个数

$#用于获取命令行参数的个数。它返回一个整数值,表示传递给脚本或函数的参数个数。

示例:

假设我们有一个名为script.sh的Shell脚本,内容如下:

#!/bin/bash

echo \"参数个数为: $#\"

我们可以在命令行中执行以下命令:

$ bash script.sh apple banana orange

输出结果将是:

参数个数为: 3

2. $* - 所有命令行参数的列表

$*用于获取所有命令行参数的列表。它将所有参数作为一个单词字符串返回。

示例:

继续使用上面的script.sh脚本,我们可以修改它的内容如下:

#!/bin/bash

echo \"所有参数为: $*\"

再次执行以下命令:

$ bash script.sh apple banana orange

输出结果将是:

所有参数为: apple banana orange

3. $@ - 所有命令行参数的列表(带引号)

$@$*类似,也用于获取所有命令行参数的列表。不同之处在于,$@将每个参数作为一个独立的字符串返回,并用引号括起来。

示例:

继续使用上面的script.sh脚本,我们可以再次修改它的内容如下:

#!/bin/bash

echo \"所有参数为: $@\"

再次执行以下命令:

$ bash script.sh apple banana orange

输出结果将是:

所有参数为: apple banana orange

4. $? - 上一个命令的退出状态

$?用于获取上一个命令的退出状态。退出状态是一个整数值,表示上一个命令的执行结果。

示例:

假设我们有一个名为script.sh的Shell脚本,内容如下:

#!/bin/bash

ls non_existent_file.txt
echo \"上一个命令的退出状态为: $?\"

我们可以在命令行中执行以下命令:

$ bash script.sh

输出结果将是:

ls: cannot access 'non_existent_file.txt': No such file or directory
上一个命令的退出状态为: 2

5. $$ - 当前Shell进程的进程ID

$$用于获取当前Shell进程的进程ID(PID)。PID是一个整数值,用于唯一标识一个进程。

示例:

假设我们有一个名为script.sh的Shell脚本,内容如下:

#!/bin/bash

echo \"当前Shell进程的进程ID为: $$\"

我们可以在命令行中执行以下命令:

$ bash script.sh

输出结果将是:

当前Shell进程的进程ID为: 12345

以上就是Shell特殊变量$#$*$@$?$$的使用攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Shell特殊变量(Shell $#、$*、$@、$?、$$)的使用 - Python技术站

(0)
上一篇 2023年8月9日
下一篇 2023年8月9日

相关文章

  • vba调用countif

    当然,我可以为您提供有关“VBA调用COUNTIF”的完整攻略,以下是详细说明: 什么是VBA调用COUNTIF? 在VBA中,可以使用COUNTIF来计算符合指定条件的单元格数量。VBA调用COUNTIF的过就是在VBA代码中使用COUNTIF函数来计算元格数量。 VBA调用COUNTIF的使用攻略 以下是VBA调用COUNT的攻略: 步骤1:打开V编辑器…

    other 2023年5月7日
    00
  • PHP的instanceof详解及使用方法介绍

    PHP的instanceof详解及使用方法介绍 instanceof是什么? instanceof是PHP中的一个用来判断一个对象是否属于某一个类或其父类的实例。它的语法格式为:$object instanceof Class,其中$object是对象实例,Class是类名。如果$object是Class的实例或Class的父类的实例,则返回true,否则返…

    other 2023年6月26日
    00
  • Spring整合Mybatis 扫描注解创建Bean报错的解决方案

    问题解析 在 Spring 整合 Mybatis 时,我们通常会使用注解的方式配置 Mybatis。在扫描 mapper 接口和 mapper.xml 文件时,我们需要在配置文件中添加以下两行配置: <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">…

    other 2023年6月26日
    00
  • win10加密文件夹小锁如何去除?

    首先需要明确的是,如果你加密了一个文件夹,那么在该文件夹中的所有文件只有在输入正确的密码或使用正确的密钥之后才能访问。因此,如果你想去除加密文件夹中的小锁图标,就需要先解密该文件夹。 以下是去除win10加密文件夹小锁的完整攻略: 1.解密加密文件夹 首先,打开加密文件夹,右击文件夹并选择“属性”。 在属性窗口中,选择“高级”选项卡。 在高级属性窗口中,取消…

    other 2023年6月28日
    00
  • C# 基础入门–变量

    C# 基础入门 – 变量 在C#编程语言中,变量是用来存储和表示数据的一种方式。在本文中,我们将详细介绍C#中的变量以及如何使用它们。 变量的声明和初始化 在使用变量之前,我们需要先声明它们。变量的声明告诉编译器我们要使用一个特定类型的变量,并为它分配一块内存空间。变量的初始化是给变量赋予一个初始值。 在C#中,变量的声明和初始化可以在同一行完成,也可以分开…

    other 2023年8月8日
    00
  • Java是如何实现平台无关性的

    Java是如何实现平台无关性的 Java是一种高级编程语言,经过多年的发展,如今已经成为了全球最流行的编程语言之一。其中最为著名的特点就是平台无关性,也就是说,Java程序可以运行在任何支持Java虚拟机(JVM)的平台上,例如Windows、Linux和Mac OS等。 Java语言之所以能够实现平台无关性,是因为它的编译过程与其他语言有所不同。一般来说,…

    其他 2023年3月28日
    00
  • word如何不显示批注怎么隐藏word批注

    Word如何不显示批注怎么隐藏Word批注 在Word文档中,批注是一种常用的功能,可以用于对文档进行注释和标注。但是,在某些情况下,我们可能需要隐藏批注,攻略将介绍如何在Word中不显示批注和如何隐藏Word批注。 不显示批注 如果我们不想在Word文档中显示批注,可以按照以下步骤操作: 打开Word文档,点击“审阅”选项卡。 在“审阅”选项卡中,找到“批…

    other 2023年5月7日
    00
  • c#模拟鼠标移动与点击

    在C#中,如何模拟鼠标移动和点击? 解决方案 以下是模拟鼠标移动和点击的解决方案: 方案1:使用System.Windows.Cursor类 可以使用System.Windows.Forms.Cursor类来模拟鼠标移动和点击。具体步骤如下: 使用Cursor.Position属性设置鼠标的位置。 使用Cursor.Clip属性限制鼠标的移动范围。 使用Cu…

    other 2023年5月7日
    00
合作推广
合作推广
分享本页
返回顶部