Linux变量
变量:(大的分为环境变量与本的变量)
本地变量:
本地变量在用户现在的shell生命期的脚本中使用。例如,本地变量file-name="loop.doc",这个值只在用户当前shell生命期有意义。
如果在shell中启动另一个进程或退出,此值将无效。这个方法的优点就是用户不能对其他的shell或进程设置此变量有效。
即只在当前shell中定义的变量。
shell变量:定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。如:EDITOR之类在.profile中定义的变量
显示变量:echo ${file-name} #.{}为非必须
清除变量:unset file-name
查看所有变量:set
variable-name:-value - 当variable-name没有设置时取value的值,否则取variable-name的值,不会将alue传给variable-name
variable-name:=value - 当variable-name没有设置时将value的值赋给variable-name
variable-name:?"variable not set" - 当variable-name没有设置时,显示未定义的用户错误信息,错误提示可以自己定义
设置变量只读:readonly variable-name
查看所有只读变量:readonly
环境变量:
环境变量用于所有用户进程(经常称为子进程) 。登录进程称为父进程。shell中执行的用
户进程均称为子进程。不像本地变量(只用于现在的shell)环境变量可用于所有子进程,这
包括编辑器、脚本和应用。
环境变量的设置:(环境变量一般大写)
TEST_VAR=value;export value
或者
TEST_VAR=value
export value
或者
export TEST_VAR=value
本的变量或者环境变量如果长期使用都可以写在.profile或者/etc/profile中以方便当另一个shell使用时设置初始值。
每个shell对变量的更改是不影响另一个shell的。
查看所有环境变量:env、export
清除环境变量:unset varibale_name ,清除环境变量以后,该环境变量对接下来的子进程均无效了
嵌入shell变量:Brourne shell 有一些预留的环境变量名,这些变量名不能用作其他用途。
嵌入shell变量列表:
CDPATH - 作用于cd命令,如果设置了CDPATH,当执行cd命令时,会首先从CDPATH下查找,如果没有再查找当前目录,多个路径用:隔开(:/home/test:/home/tiny/bin)
EXINIT - vi编辑器的初始化选项
HOME - 定位于passwd的倒数第二列的值
IFS - 指定shell缺省的分隔符,在分隔文件或变量中各域时很有用。
LOGNAME - 登录名
MAIL - MAIL变量保存邮箱路径名
MAILCHECK -缺省每6 0 s检查新邮件,但如果不想如此频繁检查新邮件,比如设为每 2 m,
MAILPATH - 如果有多个邮箱要用到MAILPATH,此变量设置将覆盖MAIL设置。
PATH - PATH变量保存进行命令或脚本查找的目录顺序,正确排列这个次序很重要,可以在执行命令时节省时间
PS1 - 基本提示符包含shell提示符,缺省对超级用户为 #,其他为$
PS2 - P S 2为附属提示符,缺省为符号>
SHELL - SHELL变量保存缺省shell,通常在/etc/passwd中已设置
TERMINFO - 终端初始化变量保存终端配置文件的位置
ERM - TERM变量保存终端类型
TZ - 时区变量保存时区值,只有系统管理员才可以更改此设置
其他一些默认缺省的:
EDITOR
PWD
MANPAGE
PAGER
LPDEST/PRINTER
将变量导出到子进程:export
在脚本a中:father=script1;export father
在脚本b中:echo $father
当在a中调用b时(b是a创建的子进程),如果没有没有export father则将输出空值,否则输出script1
两种特殊的只读变量:
位置变量:(参数位置),目前最多$0~$9,$0是脚本本身名字,其余依次是脚本的参数
特定变量:
$# 传递到脚本的参数个数
$@ 与$#相同,但是使用时加引号,并在引号中返回每个参数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过 9个
$$ 脚本运行的当前进程I D号
$! 后台运行的最后一个进程的进程I D号
$- 显示s h e l l使用的当前选项,与s e t命令功能相同
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
Linux变量的更多相关文章
- linux变量心得
前一段时间学习了一下linux的变量,现在总结有3点需要特别注意: linux变量和C/C++变量的区别 linux变量的引用 linux变量特有的命令替换 先说第一点,linux变量更像是宏定义,只 ...
- linux --> Linux变量之$#, $*, $@含义
Linux变量之$#, $*, $@含义 一.介绍 $# //是传给脚本的参数个数 $ //是脚本本身的名字 $1 //是传递给该shell脚本的第一个参数 $ //是传递给该shell脚本的第二个参 ...
- Linux变量及运算
变量赋值:var=var_value 变量引用:$var 算术运算:var=`expr $var1 + $var2` 字符串连接:var=str$var1 数值比较:-eq/-ne/-gt/-lt/- ...
- Linux 变量的使用
目录 1. Shell 脚本规范 2. Shell 脚本执行 3. Shell 脚本变量 3.1 环境变量 3.1.1 自定义环境变量 3.1.2 显示与取消环境变量 3.1.3 环境变量初始化与对应 ...
- 菜鸟学Linux - 变量基本规则
变量是一个很重要的概念,无论是bash脚本还是其他语言,都是如此.在bash中,创建变量很简单,给变量一个名称即可.默认情况下,变量的值为空.我们可以通过等号为变量赋值.需要注意的是,变量和变量的值不 ...
- Linux 变量 $$ $! $? $- $# $* $@ $0 $n
[参考文章]:linux中shell变量$#,$@,$0,$1,$2的含义解释 1. 变量说明 1.1 $$ Shell本身的PID(ProcessID) 1.2 $! Shell最后运行的后台Pro ...
- Linux - 变量
printenv - print all or part of environment 显示所有变量:print 显示某个变量:print <variable name> 或者 echo ...
- Linux变量内容的删除、取代与替换
变量内容的删除与取代 范例一:先让小写的 path 自定义变量配置的与 PATH 内容相同 [root@www ~]# path=${PATH} [root@www ~]# echo $path /u ...
- Linux变量键盘读取、数组与声明: read, array, declare
[root@www ~]# read [-pt] variable 选项与参数: -p :后面可以接提示字符! -t :后面可以接等待的『秒数!』这个比较有趣-不会一直等待使用者啦! 范例一:让用户由 ...
随机推荐
- chomre常用快捷键
Ctrl+T 打开新标签页. 按住 Ctrl 键的同时点击链接.或用鼠标中键(或鼠标滚轮)点击链接. 从后台在新标签页中打开链接. ...
- Unity3D 系统宏
Platform Defines The platform defines that Unity supports for your scripts are: Property: Functi ...
- 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)
这篇文章主要介绍了将编码从GB2312转成UTF-8的方法汇总(从前台.程序.数据库),需要的朋友可以参考下 一个网站如果需要国际化,就需要将编码从GB2312转成UTF-8,其中有很多的问题需要注意 ...
- 前向后瞻正则表达式及其JS例子
定义 x(?=y) 匹配'x'仅仅当'x'后面跟着'y'.这种叫做正向肯定查找. 比如,/Jack(?=Sprat)/会匹配到'Jack'仅仅当它后面跟着'Sprat'./Jack(?=Sprat|F ...
- WkHtmlToPdf 生成 PDF
1. 首先去http://wkhtmltopdf.org/downloads.html 下载最新版本的安装包 2. 执行安装完成 3. CMD 命令行运行wkhtmltopdf.exe程序生成PDF ...
- Oracle 存储过程异常处理
Oracle 存储过程异常处理 1.异常的优点 如果没有异常,在程序中,应当检查每个命令的成功还是失败,如 BEGIN SELECT ... -- check for ’no data f ...
- 献给初学者:谈谈如何学习Linux操作系统
本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329. 为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式 ...
- android cocos2d-x for Android安装和学习笔记(请用adt-bundle21.1或以上导入)
引用:http://weimingtom.iteye.com/blog/1483566 (20121108)注意:这篇文章用cdt编译ndk工程的内容已过时(现在可以用adt-bundle,避免配置繁 ...
- 跟着8张思维导图学习javascript
学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出8张javascript相关的思维导图. 思维导图小tips:思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又 ...
- 数据库连接driverClass和jdbcUrl大全
一.MySQL: driverClass:com.mysql.jdbc.Driver org.gjt.mm.mysql.Driver jdbcUrl:j ...