`
dengwenwei121
  • 浏览: 36089 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

Shell 特殊变量

 
阅读更多

以前的教程中说过有关在变量名中使用某些非字母数字字符。这是因为这些字符中使用特殊的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的特殊变量实例详解

    shell的特殊变量实例详解 shell的特殊变量实例详解shell的特殊变量实例详解 $0 shell或shell脚本的名字 $* 以一对双引号给出参数列表 $@ 将各个参数分别加双引号返回 $# 参数的个数 $_ 代表上一个命令...

    Shell变量名使用的特殊字符

    Shell变量名使用的特殊字符: $# 传送给命令Shell的参数序号 $- 在Shell启动或使用set命令时提供选项 $? 上一条命令执行后返回的值 $$ 当前shell的进程号 $! 上一个子进程的进程号 $@ 所有的参数,每个都用双...

    shell编程.doc(变量 用户定义变量,环境变量,位置变量(shell 参数) )

    主要内容: .shell基础 基本介绍,环境,选项,特殊字符 .shell变量 用户定义变量,环境变量,位置变量(shell 参数) .shell script编程 条件测试,循环及重复控制

    Shell编程之特殊变量和扩展变量详解

    主要给大家介绍了关于Shell编程教程之特殊变量和扩展变量的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Shell-特殊变量 $0, $#, $*, $@, $?, $$和命令行参数

    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# ...

    Shell基础知识点(7)—特殊变量

    Shell 特殊变量及其含义 1. 脚本功能是打印脚本传递的第一个参数的值 2. 位置参数的数字大于9后,需要用大括号将数字括起来 3. 获取脚本的名称及路径 若不带路径执行脚本,那么输出的结果就是脚本的名字 若使用全...

    Shell中特殊参数变量和特殊状态变量汇总

    特殊参数变量: $#:传给Shell脚本的参数个数 $0:当前Shell脚本名 $1:传递给Shell脚本的第1个参数,若没有则为空 $2:传递给Shell脚本的第2个参数,若没有则为空 $3:传递给Shell脚本的第3个参数,后续以此类推 ${...

    老男孩Linux shell 高级编程

    要介绍了shell的相关知识教程,如shell编程需要的基础知识储备...变量类型-全局变量相关知识讲解、shell的特殊变量-难点理论与实战剖析、批量修改文件名及扩展名多案例实践讲解、变量替换技术实践与生产实战教训案例等

    shell脚本编写

    预定义变量,bash预定义的特殊变量,不能直接修改;位置变量,通过命令行给程序传递执行参数 定义一个新的shell变量,必须以英文字母或下划线开头; 定义变量的格式:变量名=变量值,如aaa=123;

    Shell编程中的特殊变量之位置变量介绍

    主要介绍了Shell编程中的特殊变量之位置变量介绍,本文讲解了$0、$n、$*、$#这4个特殊变量,需要的朋友可以参考下

    shell变量的各种操作

    echo 单双引号的区别,双引号支持转义, 开头的变量会被自动替换,PWD本身就是特殊变量,当前的路径,单引号则就是输出。例子:echo”开头的变量会被自动替换,PWD本身就是特殊变量,当前的路径,单引号则就是输出。...

    Linux bash Shell中的变量类型详解

    特殊变量(内置) 二、本地变量: varname=value:作用域为整个bash进程可以使用; 变量命名规范: 1. 只能含字母、数字和下划线,并且以字母和下划线开头 2. 最好不要跟系统已有的环境变量重名 3. 见名知意 三、...

    Shell编程中的特殊变量之进程状态变量介绍

    主要介绍了Shell编程中的特殊变量之进程状态变量介绍,本文讲解了$$、$!、$?、$@、$_这些特殊变量,需要的朋友可以参考下

    Shell编程之特殊变量的笔记小结

    主要介绍了Shell编程之特殊变量的笔记小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    linux-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...

    Linux Shell编程实验

    3.Shell中的特殊字符。 4.条件判断结构与循环结构 5.函数的定义和使用 三、预备知识 1、LINUX环境下常用命令和VI编辑器的操作。 2、了解Shell作用和主要分类等基础知识。 四、实验设备及工具 软件:PC机操作系统...

    Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程...在bash中,子shell进程的PID存储在一个特殊的变量‘$$’中。这个变量只读,你不可

Global site tag (gtag.js) - Google Analytics