当前位置: > shell编程 >

linux的定义变量

时间:2016-05-23 00:42来源:linux.it.net.cn 作者:IT

变量在设定时需要付合某些规定

1. 变量与变量的内容以符号 = 来连接;
2. 等号两边不能直接接空格符;
3. 变量不能以数字开头,只能是英文和数字组成;
4. 若有空格符可以使用 “” 或单引号‘ 来将变量内容结合起来;双引号里内的特殊字符可以保持变量的特性,但是单引号内的则仅为一般字符;
5. 必要时以\ 来将特殊符号变为一般符号;
6. 若该变量需要在其它子程序执行,则需要export来使变量变成环境变量。如exort PATH;
7. 取消变量的方法为: unset 变量名称。

例:
范例一
设变量name 为 It's name,下面两种方法都可以
[root@it.net.cn:~]$ name="It's name"
[root@it.net.cn:~]$echo $name
[root@it.net.cn:~]$ name=It\'s\ name # 一个是把 ' 变成一般符号,另一个是把空格变成一般符号

范例二
在PATH这个变量中累加:/home/dmtsai/bin这个目录
[root@it.net.cn:~]$ PATH=$PATH:/home/dmtsai/bin
[root@it.net.cn:~]$ PATH="$PATH":/home/dmtsai/bin
以上两种都可以

范例三
在变量name里多出yes
[root@it.net.cn:~]$ name="$name"yes
[root@it.net.cn:~]$ name=${name}yes

范例四
如何才能让设定的name可以用于下个shell的程序呢?
[root@it.net.cn:~]$ export name
[root@it.net.cn:~]$ bash
[root@it.net.cn:~]$ echo $name #则可以看到刚才设定的name了。

范例五
取得变量的值 并放到命令中
[root@it.net.cn:~]$  cd /lib/modules/`uname -r`/kernel

查看有环境中有多少变量,可以用env 命令
通常可以看到主机名,shell的类型,历史命令保留的行数,使用者的名称

set会把环境变量及当前定义的变量都会列出来

ps1变量的定义
PS1="[u@h w]$"
下面简单说说环境下默认的特殊符号所代表的意义:
d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
t :显示时间为24小时格式,如:HH:MM:SS
T :显示时间为12小时格式
A :显示时间为24小时格式:HH:MM
u :当前用户的账号名称
v :BASH的版本信息
w :完整的工作目录名称。家目录会以 ~代替
W :利用basename取得工作目录名称,所以只会列出最后一个目录
# :下达的第几个命令
$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

----------------------------------------------------------------------------------------------------------------------------------------
read
作用:要读取来自键盘的变量
方法:[root@it.net.cn:~]$read [-pt]  variable
参数:
-p  后面可以接提示字符
-t   后面可以接等待的s数
例:
[root@it.net.cn:~]$read -p "Please keyin your name: " -t 30 yname

----------------------------------------------------------------------------------------------------------------------------------------
declare /typeset
作用:两者作用一样,声明变量属性。如果没有接变量名称,则如set一样,会列出所有的变量
用法:[root@it.net.cn:~]declare [-aixr] variable
参数:
-a:将后面的variable定义成为数组
-i:将后面的variable定义为整数
-x:用法与export一样,就后面的变量变成环境变量;
-r:将一个variable的变量设为readonly,该变量不可以被更改内容。也不能unset
范例:
范例一:让变量 sum 进行100+300+50的加总结果
[root@it.net.cn:~]declare -i sum=100+300+50
[root@it.net.cn:~]echo $sum

范例二:让sum变成环境变量
[root@it.net.cn:~]declare -x sum

范例三:让sum变成只读属性
[root@it.net.cn:~]declare -r sum

----------------------------------------------------------------------------------------------------------------------------------------
数组的定义
var[index]=content
[root@it.net.cn:~]var[1]="small min"
[root@it.net.cn:~]var[2]="small min"
[root@it.net.cn:~]var[3]="small min"
[root@it.net.cn:~]echo "${var[1]},${var[2]},${var[3]}"

----------------------------------------------------------------------------------------------------------------------------------------
命令别名设定: alias, unalias
[root@linux ~]# alias lm='ls -l | more' 
[root@linux ~]# alias rm='rm -i' 
[root@linux ~]# unalias lm 

 



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容