以前的教程中说过有关在变量名中使用某些非字母数字字符。这是因为这些字符中使用特殊的Unix变量的名称。这些变量被保留用于特定功能。
例如,$字符表示进程ID号,或PID,在当前shell:
$echo $$
上面的命令将写入在当前shell的PID:
29949
以下下表显示了一些特殊的变量,你可以在你的shell脚本中使用:
变量
描述
$0
|
The filename of the current script. |
$n
|
These variables correspond to the arguments with which a script was invoked. Here n is a positive decimal number corresponding to the position of an argument (the first argument is $1, the second argument is $2, and so on). |
$#
|
The number of arguments supplied to a script. |
$*
|
All the arguments are double quoted. If a script receives two arguments, $* is equivalent to $1 $2. |
$@
|
All the arguments are individually double quoted. If a script receives two arguments, $@ is equivalent to $1 $2. |
$?
|
The exit status of the last command executed. |
$$
|
The process number of the current shell. For shell scripts, this is the process ID under which they are executing. |
$!
|
The process number of the last background command. |
命令行参数:
该命令行参数$1, $2, $3,...$9是位置参数,与0美元指向实际的命令,程序,shell脚本,函数和$1, $2, $3,...$9作为参数的命令。
下面的脚本使用命令行相关的各种特殊变量:
#!/bin/sh
echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"
下面是一个示例运行上面的脚本:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
特殊参数$ *和$ @:
有特殊的参数,允许在一次访问所有的命令行参数。 $ *和$ @都将相同的行动,除非它们被括在双引号“”。
这两个参数指定的命令行参数,但“$ *”特殊参数需要整个列表作为一个参数之间用空格和“$ @”特殊参数需要整个列表,将其分为不同的参数。
我们可以写下面所示的命令行参数处理数目不详的$ *$ @特殊参数的shell脚本:
#!/bin/sh
for TOKEN in $*
do
echo $TOKEN
done
有一个例子运行上面的脚本:
$./test.sh Zara Ali 10 Years Old
Zara
Ali
10
Years
Old
注:在这里do...done是一种循环,在以后的教程中,我们将涵盖。
退出状态:
$?变量表示前一个命令的退出状态。
退出状态是一个数值,完成后返回的每一个命令。作为一项规则,大多数命令返回,如果他们不成功退出状态为0,如果他们是成功的。
一些命令返回其他特殊退出状态。例如,一些命令区分类型的错误,并且将返回各种退出值取决于特定类型失效。
成功的命令如下面的例子:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
$echo $?
0
$
分享到:
相关推荐
shell特殊变量列表及各变量代表的特殊含义
shell特殊变量图表,看看你知不知道?
shell的特殊变量实例详解 shell的特殊变量实例详解shell的特殊变量实例详解 $0 shell或shell脚本的名字 $* 以一对双引号给出参数列表 $@ 将各个参数分别加双引号返回 $# 参数的个数 $_ 代表上一个命令...
Shell变量名使用的特殊字符: $# 传送给命令Shell的参数序号 $- 在Shell启动或使用set命令时提供选项 $? 上一条命令执行后返回的值 $$ 当前shell的进程号 $! 上一个子进程的进程号 $@ 所有的参数,每个都用双...
主要内容: .shell基础 基本介绍,环境,选项,特殊字符 .shell变量 用户定义变量,环境变量,位置变量(shell 参数) .shell script编程 条件测试,循环及重复控制
主要给大家介绍了关于Shell编程教程之特殊变量和扩展变量的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# ...
Shell 特殊变量及其含义 1. 脚本功能是打印脚本传递的第一个参数的值 2. 位置参数的数字大于9后,需要用大括号将数字括起来 3. 获取脚本的名称及路径 若不带路径执行脚本,那么输出的结果就是脚本的名字 若使用全...
特殊参数变量: $#:传给Shell脚本的参数个数 $0:当前Shell脚本名 $1:传递给Shell脚本的第1个参数,若没有则为空 $2:传递给Shell脚本的第2个参数,若没有则为空 $3:传递给Shell脚本的第3个参数,后续以此类推 ${...
要介绍了shell的相关知识教程,如shell编程需要的基础知识储备...变量类型-全局变量相关知识讲解、shell的特殊变量-难点理论与实战剖析、批量修改文件名及扩展名多案例实践讲解、变量替换技术实践与生产实战教训案例等
预定义变量,bash预定义的特殊变量,不能直接修改;位置变量,通过命令行给程序传递执行参数 定义一个新的shell变量,必须以英文字母或下划线开头; 定义变量的格式:变量名=变量值,如aaa=123;
主要介绍了Shell编程中的特殊变量之位置变量介绍,本文讲解了$0、$n、$*、$#这4个特殊变量,需要的朋友可以参考下
echo 单双引号的区别,双引号支持转义, 开头的变量会被自动替换,PWD本身就是特殊变量,当前的路径,单引号则就是输出。例子:echo”开头的变量会被自动替换,PWD本身就是特殊变量,当前的路径,单引号则就是输出。...
特殊变量(内置) 二、本地变量: varname=value:作用域为整个bash进程可以使用; 变量命名规范: 1. 只能含字母、数字和下划线,并且以字母和下划线开头 2. 最好不要跟系统已有的环境变量重名 3. 见名知意 三、...
主要介绍了Shell编程中的特殊变量之进程状态变量介绍,本文讲解了$$、$!、$?、$@、$_这些特殊变量,需要的朋友可以参考下
主要介绍了Shell编程之特殊变量的笔记小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
10.3.5 Shell基础-Bash基本功能-通配符和其他特殊符号.mp4 10.4.1 Shell基础-Bash变量-用户自定义变量.mp4 10.4.2 Shell基础-Bash变量-环境变量.mp4 10.4.3 Shell基础-Bash变量-位置参数变量.mp4 10.4.4 Shell...
3.Shell中的特殊字符。 4.条件判断结构与循环结构 5.函数的定义和使用 三、预备知识 1、LINUX环境下常用命令和VI编辑器的操作。 2、了解Shell作用和主要分类等基础知识。 四、实验设备及工具 软件:PC机操作系统...
提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程...在bash中,子shell进程的PID存储在一个特殊的变量‘$$’中。这个变量只读,你不可