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

 更新时间:2021年03月01日 11:12:10   投稿:zx  
这篇文章主要介绍了Shell特殊变量(Shell $#、$*、$@、$?、$$)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

上节我们讲到了 $n,它是特殊变量的一种,用来接收位置参数。本节我们继续讲解剩下的几个特殊变量,它们分别是:$#、$*、$@、$?、$$。

Shell 特殊变量及其含义

变量 含义
$0 当前脚本的文件名。
$n(n≥1) 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1,第二个参数是 $2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。当被双引号" "包含时,$@ 与 $* 稍有不同,我们将在《Shell $*和$@的区别》一节中详细讲解。
$? 上个命令的退出状态,或函数的返回值,我们将在《Shell $?》一节中详细讲解。
$$ 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。

下面我们通过两个例子来演示。

1) 给脚本文件传递参数
编写下面的代码,并保存为 test.sh:

#!/bin/bash
echo "Process ID: $$"
echo "File Name: $0"
echo "First Parameter : $1"
echo "Second Parameter : $2"
echo "All parameters 1: $@"
echo "All parameters 2: $*"
echo "Total: $#"

运行 test.sh,并附带参数:

[mozhiyan@localhost demo]$ . ./test.sh Shell Linux
Process ID: 5943
File Name: bash
First Parameter : Shell
Second Parameter : Linux
All parameters 1: Shell Linux
All parameters 2: Shell Linux
Total: 2

2) 给函数传递参数

编写下面的代码,并保存为 test.sh:

#!/bin/bash
#定义函数
function func(){
  echo "Language: $1"
  echo "URL: $2"
  echo "First Parameter : $1"
  echo "Second Parameter : $2"
  echo "All parameters 1: $@"
  echo "All parameters 2: $*"
  echo "Total: $#"
}
#调用函数
func Java http://c.biancheng.net/java/

运行结果为:
Language: Java
URL: http://c.biancheng.net/java/
First Parameter : Java
Second Parameter : http://c.biancheng.net/java/
All parameters 1: Java http://c.biancheng.net/java/
All parameters 2: Java http://c.biancheng.net/java/
Total: 2

到此这篇关于Shell特殊变量(Shell $#、$*、$@、$?、$$)的使用的文章就介绍到这了,更多相关Shell特殊变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • shell输出重定向的实现

    shell输出重定向的实现

    本文主要介绍了shell输出重定向的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Linux shell编程中IO和条件及循环处理的细节问题讨论

    Linux shell编程中IO和条件及循环处理的细节问题讨论

    这篇文章主要介绍了Linux shell编程中IO和条件及循环处理的细节问题讨论,需要的朋友可以参考下
    2016-02-02
  • 详解&&、()、||决定linux命令的执行顺序

    详解&&、()、||决定linux命令的执行顺序

    这篇文章主要介绍了&&、()、||决定linux命令的执行顺序,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-08-08
  • Shell中处理包含空格的文件名实例

    Shell中处理包含空格的文件名实例

    这篇文章主要介绍了Shell中处理包含空格的文件名实例,需要的朋友可以参考下
    2014-05-05
  • hbase-shell批量命令执行脚本的方法

    hbase-shell批量命令执行脚本的方法

    今天小编就为大家分享一篇hbase-shell批量命令执行脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • shell自动拉取镜像并运行容器的shell脚本

    shell自动拉取镜像并运行容器的shell脚本

    本文主要介绍了shell自动拉取镜像并运行容器的shell脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • shell 脚本中的 '-f' 和 '-d' 是什么意思

    shell 脚本中的 '-f' 和 '-d&apo

    本文讲解如何使用'-f'和'-d'条件表达式来测试文件和目录,在实际脚本中,这样的条件判断常用于根据不同的情况执行不同的操作,感兴趣的朋友跟随小编一起看看吧
    2023-12-12
  • linux iptables防火墙中的工作常用命令

    linux iptables防火墙中的工作常用命令

    linux系统的防火墙,IP信息包过滤u系统,它实际上由两个组件netfilter和iptables组成,这篇文章主要介绍了linux iptables防火墙-工作常用命令,需要的朋友可以参考下
    2022-10-10
  • shell中长命令的换行处理方法示例

    shell中长命令的换行处理方法示例

    这篇文章主要给大家介绍了关于shell中长命令的换行处理方法,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • shell 编写一个带有进度条的程序安装脚本

    shell 编写一个带有进度条的程序安装脚本

    这篇文章主要介绍了shell 编写一个带有进度条的程序安装脚本,通过使用Shell脚本,我们可以轻松地实现命令行中的进度条功能,从而提高工作效率,感兴趣的可以了解一下
    2023-08-08

最新评论