时间:2021-05-22
上节我们讲到了 $n,它是特殊变量的一种,用来接收位置参数。本节我们继续讲解剩下的几个特殊变量,它们分别是:$#、$*、$@、$?、$$。
Shell 特殊变量及其含义
变量 含义 $0 当前脚本的文件名。 $n(n≥1) 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1,第二个参数是 $2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。当被双引号" "包含时,$@与 $* 稍有不同,我们将在《Shell $*和$@的区别》一节中详细讲解。 $? 上个命令的退出状态,或函数的返回值,我们将在《Shell $?》一节中详细讲解。 $$ 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。
下面我们通过两个例子来演示。
1) 给脚本文件传递参数
编写下面的代码,并保存为 test.sh:
运行 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特殊变量内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
特殊变量在Shell中的特殊变量主要分别两种位置参数变量、状态变量两种。位置参数变量Shell中的位置参数变量主要是指0、0、1、$#等,主要用于从命令行、函数
Shell常用特殊变量经常会在shell命令中,看到$0,$#,$*,$@,$?,$$这样的取值,这些代表什么呢?变量含义$0当前脚本的文件名$n传递给
有多种方式可以查看你目前在使用什么shell,最简单的方法就是通过使用shell的特殊参数。其一,一个名为"$$"的特殊参数表示当前你正在运行的shell实例的
环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell。对于UNIX
目前注意到的区别主要在于环境变量的作用域上:1.如果使用"./"执行,可以理解为程序运行在一个全新的shell中,不继承当前shell的环境变量的值,同时若在程