特殊变量在Shell脚本中的功能和使用示例是什么?

作者&投稿:大季费 (若有异议请与网页底部的电邮联系)
~ 在 UNIX 环境中,特殊变量扮演着至关重要的角色,它们是预留给特定功能的字符变量,用于存储特定信息。例如,$ 字符代表进程 ID(PID),而 $echo$$ 命令将显示当前 Shell 的 PID。这些变量包括 $0(脚本文件名)、位置参数$1、$2 等(对应于命令行参数)、$#(参数数量)、$*(所有参数合并为一个字符串)和 $@(参数以单独的形式列出)。例如,脚本可以利用$* 和 $@ 来处理命令行参数,区别在于$* 会将参数作为一个整体,用空格分隔,而 $@ 则为独立参数。
以下是一个演示如何使用特殊变量的 Shell 脚本片段:
在 Shell 脚本中,如:

运行这个脚本:

$./test.sh Zara Ali

输出将显示:

FileName: ./test.sh

FirstParameter: Zara

SecondParameter: Ali

QuotedValues: Zara Ali

QuotedValues: Zara Ali

TotalNumberOfParameters: 2

特殊参数 $* 和 $@ 的区别在于处理命令行参数时,$* 作为一个整体显示,而 $@ 保持参数的独立性。

退出态 $? 可以用来检查上一条命令的执行状态,成功时返回 0,失败时返回非零值。例如:

$./test.sh Zara Ali

FileName: ./test.sh

FirstParameter: Zara

SecondParameter: Ali

QuotedValues: Zara Ali

QuotedValues: Zara Ali

TotalNumberOfParameters: 2

$echo $?

0
这个改写后的 HTML 片段直观地展示了 UNIX 特殊变量的用法和功能。


shell登录为什么提示符由[root@localhost]变为bash-3.2# ???_百度知...
提示符(PROMPTING)在 交互执行时, bash 在准备好读入一条命令时显示主提示符 PS1,在需要更多 的输入来完成一条命令时显示 PS2。 Bash 允许通过插入一些反斜杠转义的特 殊 字符来定制这些提示字符串,这些字符被如下解释:\\a 一个 ASCII 响铃字符 (07)\\d 日期,格式是 "星期 月份 日" (例如...

学生信的那些事儿之七 - Linux基础之Shell脚本编程
ok,脚本写完了,怎么让脚本开始工作呢?这有涉及到之前讲过的环境变量和相对路径、绝对路径了。方法有三:就这么多吧,应该有点感觉到了,剩下的就是狂练狂练了~

dell 服务器机器中bios中可以设置IP等网络设置,这个和在linux系统中利 ...
1、 图形终端(即,x-window)的配置与使用。围绕KDE和(或)GNOME,展示UNIX系统的友好界面。2、 简单的shell教本编写方法,环境变量 3、 Linux下IP网络的基本配置(IP地址、网关、名字)4、 Linux下的网络服务的配置与使用(包括ftp、DNS、Apache、Sendmail、samba的基本配置)。基于RedHat的setup和lin...

马龙县13330453173: linux中的shell变量的种类及各种类的用处是什么? -
湛科严弗: 2.1.1 本地变量 定义:是在用户现在的shell生命期的脚本中使用; 例:[redhat@server redhat]$name="Red Hat Linux" #把变量设置为Red Hat Linux [redhat@server redhat]$echo ${name} or #显示变量内容 =[redhat@server redhat]$echo $name...

马龙县13330453173: linux shell中特殊变量 怎么使用 -
湛科严弗: $0 正在被执行命令的名字.对于shell 脚本而言,这是被激活命令的路径$n 该变量与脚本被激活时所带的参数相对应.n 是正整数,与参数位置相对应 ($1,$2...)$# 提供脚本的参数号 $* 所有这些参数都被双引号引住.若一个脚本接收两个参数,$* 等于 $1$2$@ 所有这些参数都分别被双引号引住.若一个脚本接收到两个参数,$@ 等价于 $1$2$? 前一个命令执行后的退出状态 $$ 当前shell 的进程号.对于shell 脚本,这是其正在执行时的进程 ID$! 前一个后台命令的进程号$- 显示shell使用的当前选项,与 set命令功 能相同

马龙县13330453173: shell脚本中的美元符号什么意思 -
湛科严弗: linux shell脚本中的美元符号$,是作为shell中特殊变量使用的,具体含义:$0 shell的命令本身(包括完整路径) $1到$9 数字表示shell 的第几个参数 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的ID号 $! 后台运行的最后一个进程的ID号 $@ 与$*相同. $- 显示shell使用的当前选项. $? 显示最后命令的执行状况.0表示没有错误.

马龙县13330453173: 请问Linux Shell编程的特殊变量有哪些
湛科严弗: shell的特殊变量包括它的位置和一些系统变量.常用的一部分列表如下: 常用位置变量: $0 shell命令名称(存储shell脚本文件的文件名) $# 命令行参数的个数 $1,$2, ...... shell命令行的第一,第二,第......个参数 $$ 此运行此shell命令的进程ID 常用系统变量: $HOME 用户的主目录 $USER 用户名称 $GROUP 用户所属组名 $PATH 默认的搜索路径 $HOSTNAME 主机名称 $TZ 时区 $MAIL 存放邮件的路径名

马龙县13330453173: 如何在shell脚本中使用变量 -
湛科严弗: 系统定义的变量:这些变量由操作系统(Linux)自身创建并维护,通常它们以大写字母定义,我们可以通过命令“$ set”来查看这些变量.下面列出了部分系统定义的变量:系统定义的变量 意义 BASH=/bin/bash Bash Shell 名称 BASH_...

马龙县13330453173: LINUX中的SHELL变量是什么意思? -
湛科严弗: 1.建立和运行shell程序 什么是shell程序呢? 简单的说shell程序就是一个包含若干行 shell或者linux命令的文件. 象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等. 在文本编辑环境下,依据shell的语法规则,输入一些shell/...

马龙县13330453173: 如何在shell脚本中,判断一个基本命令执行是否成功 -
湛科严弗: 用特殊变量:$?判断前一个命令的执行是否成功(或者说是返回码) 执行成功变量的值是0,不是零表示没有执行成功 例如:注意:一定要在命令执行后立即判断,否则后面的代码会冲掉$?变量的值.

马龙县13330453173: 在shell编程中,下面哪个表示上一步所运行程序的返回值 -
湛科严弗: 特殊变量$# 表示SHELL 脚本程序的命令行参数个数 特殊变量$? 表示SHELL 脚本程序的上一命令返回值 特殊变量$* 表示SHELL 脚本程序的所有参数 特殊变量$0 表示SHELL 脚本程序的程序名 特殊变量$1 表示SHELL 脚本程序的第一个参数 特殊变量$2 表示SHELL 脚本程序的第二个参数

马龙县13330453173: shell 脚本的变量引用 -
湛科严弗: 在bash中,${var##parttern} 的意思是,如果pattern匹配var的前缀,那么 ${var##pattern}的值就是 var的值去掉匹配的前缀后剩下的内容.所以 ${1##*.tar.} 的含义是,将第一个输入参数的值中匹配 *.tar的前缀删掉,假定输入 a.tar.abc ,则去掉前缀 *.tar. 后,剩下 abc 这个纯粹是bash提供的功能,没什么神奇的,具体可以man bash

马龙县13330453173: linux export命令 在哪 -
湛科严弗: Linux export命令 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量.export可新增,修改或删除环境变量,供后续执行的程序使用.export的效力仅及于该次...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网