Linux Shell编程(14)——内部变量
内建变量
影响Bash脚本行为的变量。
$BASH
Bash二进制程序文件的路径
bash$ echo $BASH
/bin/bash
$BASH_ENV
该环境变量保存一个Bash启动文件路径,当启动一个脚本程序时会去读该环境变量指定的文件。
$BASH_SUBSHELL
一个指示子shell(subshell)等级的变量。它是Bash版本3新加入的。
$BASH_VERSINFO[n]
这个数组含有6个元素,指示了安装的Bash版本的信息。它和$BASH_VERSION相似,但它们还是有一些小小的不同。
# Bash版本信息:
for n in 0 1 2 3 4 5
do
echo "BASH_VERSINFO[$n] = ${BASH_VERSINFO[$n]}"
done
# BASH_VERSINFO[0] = 3 # 主版本号.
# BASH_VERSINFO[1] = 00 # 次版本号.
# BASH_VERSINFO[2] = 14 # 补丁级.
# BASH_VERSINFO[3] = 1 # 编译版本.
# BASH_VERSINFO[4] = release # 发行状态.
# BASH_VERSINFO[5] = i386-redhat-linux-gnu # 结构体系
# (和变量$MACHTYPE相同).
$BASH_VERSION
安装在系统里的Bash版本
检查$BASH_VERSION是检测哪个shell在运行的好办法。$SHELL变量不一定能给出正确的答案。
$DIRSTACK
在目录堆栈里面最顶端的值(它受pushd和popd的控制)
这个内建的变量和dirs命令相符,但dirs是给出整个目录堆栈的内容。
$EDITOR
由脚本调用的默认的编辑器,一般是vi或是emacs.
$EUID
有效用户ID
当前用户无论是什么标识都会被认为是这个有效用户ID,这可能依赖于su.
变量$UID不一定和$EUID相同。
$FUNCNAME
当前函数的名字
$GLOBIGNORE
由通配符(globbing)扩展的一列文件名模式。
$GROUPS
目前用户所属的组
它是当前用户在/etc/passwd文件中记录的所属的组列表(数组)。
$HOME
用户的家目录,通常是/home/username
$HOSTNAME
在系统启动时由一个初始化脚本中用hostname命令给系统指派一个名字。然而,gethostname()函数能设置Bash内部变量E$HOSTNAME。
$HOSTTYPE
机器类型
像$MACHTYPE一样标识系统硬件。
$PPID
一个进程的$PPID变量保存它的父进程的进程ID(pid)。
用这个变量和pidof命令比较。
$PROMPT_COMMAND
这个变量在主提示符前($PS1显示之前)执行它的值里保存的命令。
$PS1
这是主提示符(第一提示符),它能在命令行上看见。
$PS2
副提示符(第二提示符),它在期望有附加的输入时能看见。它显示像">"的提示。
$PS3
第三提示符。它在一个select循环里显示
$PS4
第四提示符,它在用-x选项调用一个脚本时的输出的每一行开头显示。它通常显示像"+"的提示。
$PWD
工作目录(即你现在所处的目录)
它类似于内建命令pwd。
例子:是root吗?
#!/bin/bash ROOT_UID=0 # Root的$UID为0. if [ "$UID" -eq "$ROOT_UID" ] # 真正的"root"才能经得住考验
then
echo "You are root."
else
echo "You are just an ordinary user (but mom loves you just the same)."
fi exit 0 # ============================================================= #
# 下面的代码不会执行,因为脚本在上面已经退出了. # 另外一种判断是否是root用户的方法: ROOTUSER_NAME=root username=`id -nu` # 或者... username=`whoami`
if [ "$username" = "$ROOTUSER_NAME" ]
then
echo "Rooty, toot, toot. You are root."
else
echo "You are just a regular fella."
fi
Linux Shell编程(14)——内部变量的更多相关文章
- (一)Linux Shell编程——简介、变量、字符串、数组
1. Shell简介 1.1 Shell出现背景 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件. 对于图形界面,用户点击某个图标就能启动某个程序:对于命令行,用户输入某个程序的名字( ...
- linux shell编程子bash变量
参考视频:https://www.imooc.com/u/279399/courses?sort=publish https://www.imooc.com/video/6516 慕课网 用户的自定义 ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
- Linux学习——shell编程之环境变量配置文件
小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...
- 速查笔记(Linux Shell编程<上>)
转载自: http://www.cnblogs.com/stephen-liu74/archive/2011/11/01/2202027.html 零.shell中的内部变量: 1. $?: ...
- linux shell编程总结
linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...
- linux shell 编程参考
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...
- Linux Shell编程与编辑器使用详解
<Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...
- 01 shell编程规范与变量
前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...
- 前端学习 linux —— shell 编程
前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...
随机推荐
- java 文件和流
最近工作中涉及到一些文件操作的东西,闲下来刚好做个整理. 控制台IO 在控制台使用键盘作为标准输入并使用终端窗口(在windows下,经常是命令提示符或者是PowerShell:在linuxx/OS ...
- 基础之 window-self-top-opener
今天我都在怀疑,很多项目还用不用iframe这个框架做页面布局. 如果你有兴趣想告诉我,请给我留言. 一. 说明 注:这里top和window.top等价,window是可以省略的,有得情况下不允许省 ...
- SQL Server 表字段值转列名 示例
前几天,同事问我怎样把字段值转换成字段列,就写了一个最简单的Demo分享一下. 代码如下: -- 创建测试表以及添加测试数据create table #temp(a money,b varchar(1 ...
- Java线程:新特征-线程池
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利.为了编写高效稳定可靠的多线程程序 ...
- Objective-C中的@dynamic(转)
转自 http://blog.csdn.net/haishu_zheng/article/details/12873151 Objective-C中的@dynamic 一.@dynamic与@synt ...
- JavaScript 标准对象
在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // ' ...
- 总结javascript继承的两种方式的N中写法
最近翻看博客园,总结了一下javascript的继承方式:prototype和copy继承方式. 一.prototype方式 当一个函数被创建时,Function构造函数产生的函数会隐式的被赋予一个p ...
- 深入了解jquery中的键盘事件
很多时候,我们需要获取用户的键盘事件,下面就一起来看看jquery是如何操作键盘事件的. 一.首先需要知道的是: 1.keydown() keydown事件会在键盘按下时触发. 2.keyup() k ...
- Python 学习之urllib模块---用于发送网络请求,获取数据(3)
上节内容,是得到了省/直辖市编码,如web='http://m.weather.com.cn/data5/city01',我们需要继续获取此接口的数据,于是进行下面的操作 for i in b ...
- 工程经济学economics of project summarize
什么是财务杠杆效应 财务杠杆效应是指由于固定费用的存在而导致的,当某一财务变量以较小幅度变动时.另一相关变量会以较大幅度变动的现象.也就是指在企业运用负债筹资方式(如银行借款.发行债券)时所产生的普通 ...