Unix & Linux基础笔记(3)

第12章       使用shell:变量和选项

12.1   交互式shell和非交互式shell

当登录时系统启动一个shell,并设置成交互式的。当运行shell脚本时,会启动一个新的shell,被设定为非交互式的。

 

12.2   环境、进程和变量

    在Unix系统中,每个对象都被表示为一个文件或进程。在进程运行过程中,需要访问所谓的环境,即一组用来存放信息的变量

变量名  变量值

对于shell来说,变量只有四种类型的操作,即创建变量,查看变量值,修改变量的值,销毁变量。而且,变量几乎总是存储一直类型的数据,即字符串(纯文本字符)。

 

12.3   环境变量和shell变量

所有shell都使用全局变量和局部变量,通常可以不严格地称环境变量为全局变量。有的shell变量只在特定的shell中使用,并不属于环境,不从父进程传递给子进程,称这种变量为局部变量。

局部变量(shell)以两种方式使用:

1.存放对于shell本身有用的信息;

2.在shell脚本中作为临时存储容器。

结论:shell变量时创建它们的shell的局部变量,环境变量是全局变量。

Bourne shell将变量只定义为局部变量,或者同时定义为局部和全局变量(全部大写)。每个新变量被自动地设置为shell变量,可以导出(export)到环境中。

C-shell通过命令setenv创建环境变量,大写,通过set创建shell变量,小写。

一些变量在shell中以及所有的子进程中都有意义。要求既是局部变量又是全局变量。

C-shell的解决办法是定义几个特殊的shell变量,分别绑定对应的环境变量。

shell变量

环境变量

cwd

PWD

home

HOME

path

PATH

term

TERM

user

USER

 

12.4   显示环境变量:env、printenv

12.5   显示shell变量:set

12.6   显示及使用变量的值:echo、print

echo  ${NAME}
echo  $NAME

print兼容于ksh。

 

12.7   Bourneshell家族使用变量:export、unset

    创建变量    NAME=value 复位变量(无法删除变量)  unset NAME...

    当使用包含空白符的值时,需要将值放在双引号中。

12.8   C-shell家族使用变量:setenv、unsetenv、set、unset

创建环境变量    

setenv  NAME  [value]

复位环境变量    

unsetenv  NAME

创建shell变量

set path=(/usr/bin /bin /usr/ucb)

使用圆括号将一组字符串括起来,而不是使用双引号,实际上定义了一组可以单独访问的字符串。

 

删除shell变量 

unset  variable

 

12.9   shell选项:set –o、set +o

shopt (shell option)访问更多的选项

 

12.10  显示shell选项

set –o     容易阅读
set +o     紧缩的格式

ignoreeof

monitor

noclobber

 

emacs

vi

 

12.11  机器可读、人类可读

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值