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高级学习之正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • 一个shell for循环与case结合的脚本(监控程序状态)

    一个shell for循环与case结合的脚本(监控程序状态)

    分享一个for循环+case的脚本(监控程序状态并执行相关操作) ,供大家学习参考
    2013-11-11
  • linux shell脚本基础知识学习

    linux shell脚本基础知识学习

    这篇文章主要介绍linux shell脚本基础知识,学习linux shell编程的朋友可以参考下
    2013-03-03
  • 把文件复制N份的2个Shell脚本代码

    把文件复制N份的2个Shell脚本代码

    这篇文章主要介绍了把文件复制N份的2个Shell脚本代码,一般用在需要大量文件测试时使用,需要的朋友可以参考下
    2014-07-07
  • 学习linux常用命令(推荐)

    学习linux常用命令(推荐)

    本文给大家分享小编日常整理的有关linux常用命令,对大家今后的工作学习非常有帮助,对linux常用命令知识感兴趣的朋友一起学习吧
    2016-11-11
  • Shell脚本解压rpm软件包

    Shell脚本解压rpm软件包

    这篇文章主要介绍了Shell脚本解压rpm软件包,用来解压后提取某个包中文件,需要的朋友可以参考下
    2014-06-06
  • shell脚本结合iptables防端口扫描的实现

    shell脚本结合iptables防端口扫描的实现

    这篇文章主要介绍了shell脚本结合iptables防端口扫描的实现,中间使用了inotify-tools工具,需要的朋友可以参考下
    2014-05-05
  • linux shell命令快捷获得系统帮助(一)[man-pages定义规范]

    linux shell命令快捷获得系统帮助(一)[man-pages定义规范]

    linux命令帮助,一般有2种,命令自身代码里面带有使用帮助说明,这种一般很精简,太长了,程序自身的大小以及日常维护不方便。还有一种,就是带有帮助文件,类似windows的chm格式文件。下面我说下这2种怎么样查阅
    2015-10-10
  • linux shell发送Email邮件的方法详解

    linux shell发送Email邮件的方法详解

    这篇文章主要介绍了linux shell发送Email邮件的方法,文中介绍的内容包括发送一封简单的邮件、邮件的格式、邮件标题使用中文以及邮件内容使用html等相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • Shell中实现字符串反转方法分享

    Shell中实现字符串反转方法分享

    这篇文章主要介绍了Shell中实现字符串反转方法分享,本文同时提供了多种语言的实现方法,如awk、python、bash、C语言等,需要的朋友可以参考下
    2014-12-12

最新评论