Advertisement

Shell中的特殊变量$0, $#, $*, $@, $?和$$以及命令行参数

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本文介绍了Shell脚本中常见的6个特殊变量及其作用,包括文件名、参数数量、位置参数及PID等,并解释了命令行参数的基本用法。 Shell 特殊变量包括以下几种: - `$0`:当前脚本的文件名。 - `$n`:传递给脚本或函数的参数。其中 n 是一个数字,表示第几个参数(例如第一个参数是 $1,第二个参数是 $2)。 - `#$` :传递给脚本或函数的参数个数。 - `$*` 和 `$@`:都代表所有传入脚本或函数中的参数。当使用双引号包含时,$@ 会将每个单独的参数视为一个独立元素处理,而 $* 则把所有的参数看作单一字符串。 - `?` :上个命令执行后的退出状态或者函数返回值。通常情况下,成功执行后返回0,失败则返回1。 - `$`:当前Shell进程的ID号。 这些变量在编写和调试 Shell 脚本时非常有用。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Shell$0, $#, $*, $@, $?$$
    优质
    本文介绍了Shell脚本中常见的6个特殊变量及其作用,包括文件名、参数数量、位置参数及PID等,并解释了命令行参数的基本用法。 Shell 特殊变量包括以下几种: - `$0`:当前脚本的文件名。 - `$n`:传递给脚本或函数的参数。其中 n 是一个数字,表示第几个参数(例如第一个参数是 $1,第二个参数是 $2)。 - `#$` :传递给脚本或函数的参数个数。 - `$*` 和 `$@`:都代表所有传入脚本或函数中的参数。当使用双引号包含时,$@ 会将每个单独的参数视为一个独立元素处理,而 $* 则把所有的参数看作单一字符串。 - `?` :上个命令执行后的退出状态或者函数返回值。通常情况下,成功执行后返回0,失败则返回1。 - `$`:当前Shell进程的ID号。 这些变量在编写和调试 Shell 脚本时非常有用。
  • Shell $0, $#, $*, $@, $?, $$应用
    优质
    本文介绍Shell脚本中特殊变量$0、$#、$*、$@、$$和状态码$?的作用,并探讨如何有效使用这些变量处理命令行参数。 特殊变量列表 | 变量 | 含义 | | --- | --- | |$0 | 当前脚本的文件名| |$n | 传递给脚本或函数的参数,其中 n 表示第几个参数(例如 $1 是第一个参数,$2 是第二个参数)| |$# | 脚本或函数接收到的参数个数 | |$* | 所有传入脚本或函数的参数 | |@$ | 同上。不过当用双引号括起来时,其行为与 $* 稍微有所不同(具体差异会在后面解释)| |$? | 上一条命令或者函数执行后的退出状态码 | |$$ | 当前 Shell 进程 ID 。对于脚本来说,则是该脚本所在的进程 ID | **命令行参数** 当运行一个脚本时传递给这个脚本的参数被称为命令行参数。这些参数使用 $n 表示,例如 $1 表示第一个参数,$2 表示第二个参数以此类推。
  • Shell脚本一部分环境:$0, $? , $!, $$, $*, $# $@
    优质
    本文介绍了在Shell脚本编程中的关键环境变量,包括执行文件名($0)、上一命令退出状态($?)、后台进程ID($!)、当前Shell PID($$)以及参数传递相关的$*和$#。 在Shell脚本编程中,环境变量扮演着至关重要的角色,它们提供了与系统交互以及控制脚本行为的方法。这里我们将详细探讨几个特定的环境变量:`$0`, `$?`, `$!`, `$$`, `$*`, `$#`, 和 `$@`。 1. **`$0`**: 这个特殊的环境变量表示当前执行的Shell脚本段落件名,用于引用调用该脚本时的文件路径。例如,在一个名为test.sh的脚本中使用命令`echo scname:$0`会输出`.test.sh`。 2. **`$?`**: `$?` 保存了上一个命令执行后的退出状态或返回值,通常在Unix/Linux系统中,0表示成功,非零值代表错误。例如,在检查某个命令是否执行成功的场景下,可以使用 `echo $?` 来查看结果。 3. **`$$`**: `$/$$` 表示当前Shell进程的PID(进程ID)。当需要在脚本内部跟踪或控制子进程时非常有用。比如启动一个后台任务后,可以通过保存此时的 PID 以供后续操作使用。 4. **`$!`**: 存储的是最后一个后台命令执行后的PID。如果脚本中包含异步运行的任务,可以利用 `$!` 获取其PID以便于管理和监控。 5. **`$*` 和 `$@`**: 这两个变量用来表示传递给脚本的所有参数。 - 使用 `$*` 时,所有参数作为一个单独的字符串输出,并且每个参数间由空格分隔。例如:`arg1 arg2 arg3` - 使用 `$@` 则会将每一个参数分别作为独立的字符串显示出来,每个参数被双引号包围。如 `arg1 arg2 arg3` 6. **`$#`**: 返回传递给脚本的所有参数的数量。例如在执行 `.test.sh aa bb` 的情况下,使用命令 `echo number:$#` 输出的结果是 2。 了解并熟练掌握这些环境变量能够帮助编写出更复杂、健壮和灵活的Shell脚本程序。通过结合使用这些变量可以实现错误处理、日志记录以及条件判断等功能。
  • Android运Shell
    优质
    本教程介绍如何在Android设备上使用终端模拟器或通过ADB工具执行Linux Shell命令,帮助用户进行系统级别的操作和调试。 1. 这只是一个例子。 2. 在Android上执行一个shell命令。 3. 在Android平台上运行过没有问题。
  • Python执Shell
    优质
    简介:本教程介绍如何在Python脚本中执行Shell命令,通过subprocess模块与os.system函数的应用示例,帮助开发者实现跨平台操作系统的自动化任务。 如果想获取命令的输出,还是需要使用 `os.popen(command)` 方法。
  • 处理ShellJSON据方法
    优质
    本文章介绍了如何在Shell命令行环境中有效处理和操作JSON数据的方法,包括使用jq工具进行复杂查询、过滤及转换等技巧。 最近需要处理一些 JSON 数据格式,经过搜索后找到了一个名为 jq 的工具。jq 可以让你在命令行下直接操作 JSON 数据,包括分片、过滤、转换等功能。通过几个例子来展示 jq 的功能: 一、输出格式化:漂亮的打印效果 使用文本编辑器查看 JSON 文件时可能会觉得乱糟糟的,但利用 jq 的 .(点)过滤器可以让 JSON 格式变得整洁。 1. 使用文本编辑器打开后的样子。 2. 用jq显示的结果: ``` % jq . soundtag.json ``` 二、快速查询JSON数据 使用 jq 可以通过 key 快速查找 JSON 数据,例如: (此处省略具体示例代码,因为原内容中没有提供具体的例子)
  • Tessent Shell考手册
    优质
    Tessent Shell命令参考手册详尽介绍了用于Mentor Graphics Tessent系列产品的Shell脚本环境中的各种命令,旨在帮助用户高效地进行设计验证和测试。 Tessent工具命令参考手册详细介绍了各类命令,非常适合IC行业的朋友们使用。
  • Spark Shell脚本技巧
    优质
    本文介绍了如何在Apache Spark的交互式Shell环境中高效地执行批量命令,提供了实用的脚本编写和优化建议。 今天给大家分享如何使用Spark-shell批量执行命令的脚本方法,这具有很好的参考价值,希望能对大家有所帮助。让我们一起看看具体内容吧。
  • GCC编译详解说明
    优质
    本文章深入解析GCC编译器的各项命令及其详细使用方法,并解释了各种命令行参数的功能与作用。 GCC编译命令详解 Gcc是GNU Compiler Collection的缩写,它是一个功能强大的编程语言编译器集合。下面将详细介绍gcc命令行的相关内容。 1. 基本用法:最基本的使用方法为`gcc [选项] 文件名` 2. 输出文件指定:通过-o选项可以设置生成的目标程序名称,默认情况下是a.out。 3. 编译预处理:-E参数可以让GCC只进行预处理步骤,不编译、汇编或链接源代码。这样可以获得包含所有头文件的完整预处理输出。 4. 优化级别:使用-O1、-O2和-O3选项可以指定不同的优化等级,数值越大表示优化程度越高。 5. 警告信息控制:通过-Wall参数可以让GCC显示更多的警告信息,帮助开发者发现潜在的问题。 以上就是关于gcc命令行的一些基本介绍。