日期:2014-05-16  浏览次数:20841 次

linux unset命令参数及用法详解--linux删除自定义变量或函数

linux  unset  命令

功能说明:删除变量或函数。

语  法:unset [-fv][变量或函数名称]

补充说明:unset为shell内建指令,可删除变量或函数。

参   数:
  -f  仅删除函数。 
  -v  仅删除变量。

范例1:删除环境变量

[root@linuxso.com~]# lx=“ls -lh“ //设定环境变量
[root@linuxso.com~]# $lx //使用环境变量
总用量 116K
-rw-r--r-- 1 root root 2.1K 2008-03-30 anaconda-ks.cfg
drwx------ 3 root root 4.0K 3月 30 21:22 Desktop
-rw-r--r-- 1 root root 50K 2008-03-30 install.log
-rw-r--r-- 1 root root 32K 2008-03-30 install.log.syslog
lrwxrwxrwx 1 root root  9 2008-03-30 qte -> /opt/qte/
[root@linuxso.com~]# set //查看当前的环境变量
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
……省略部分内容
PROMPT_COMMAND='echo -ne “33]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}07“'
PS1='[u@h W]$ '
PS2='> '
PS4='+ '
PWD=/root
QTDIR=/usr/lib/qt-3.3
SHELL=/bin/bash
SSH_TTY=/dev/pts/4
SUPPORTED=zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en
SYSFONT=latarcyrheb-sun16
TERM=xterm
UID=0
USER=root
_=-lh
lx='ls -lh'
[root@linuxso.com~]# unset lx //删除环境变量
[root@linuxso.com~]# set //显示当前环境变量
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
……省略部分内容
PROMPT_COMMAND='echo -ne “33]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}07“'
PS1='[u@h W]$ '
PS2='> '
PS4='+ '
PWD=/root
QTDIR=/usr/lib/qt-3.3
SHELL=/bin/bash
SSH_TTY=/dev/pts/4
SUPPORTED=zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en
SYSFONT=latarcyrheb-sun16
TERM=xterm
UID=0
USER=root
_=-lh

推荐资料:变量定义和赋值:=、set和unset

 

变量定义和赋值:=、set和unset

在shell中,当第一次使用某变量名时,实际上就定义了这个变量。变量名可以是任何字母字符的集合,可以包括下划线。变量名可以包括数字,但数字 不能是变量名的第一个字母。变量名不能使用其他种类的符号,比如惊叹号(!)、&,或者空格。因为这些符号已经被shell预留使用了。同样,变 量名也不能包含多个单词。在命令行中,Shell使用空格来区别命令的不同部分,例如选项、参数和命令名。

可以使用赋值操作符(=)给变量赋值。输入的次序是:变量名、赋值操作符,以及希望赋予的值。在赋值操作符(=)周围,不要有任何空格。例如,赋值 运算post = Virgil将失败。(在C Shell中,有一种类型略微不同的赋值运算。)可以把任意任意字符集合赋值给一个变量。在下面例子里,变量poet被赋予的值是字符串Virgil:

  1. poet=Virgil 

一旦给变量赋值,就能够使用这个变量名来引用这个值。通常,可以把变量的值作为命令的参数。可以通过给变量名前置美元符号($)来引用变量的值。美 元符号是使用变量名引用变量值的特殊符号,实际上是对变量求值。求值操作获取变量的值,通常是一个字符集合。这个字符集合会替换命令行中的变量名。无论什 么情况下,只要$位于变量名的前面,变量名就被变量值所替换。在下面例子中,shell变量poet 被求值,然后它的内容,Virgil,被作为ccho命令的参数。echo命令回应,并在屏幕上输出字符集合。

  1. $ echo  $poet  
  2. Virgil 

必须小心地区分变量的赋值和变量名。如果删除变量名前的美元符号,就拥有变量名本身。在下面例子里,变量名前欠缺美元符号。在下面的范例中,echo命令的参数是poet ,所以输出"poet"。

  1. $ echo  poet  
  2. poet 

变量的内容经常被用作命令的参数。常见的命令参数是目录路径名。当需要反复使用同一个目录名时,需要反复输入该目录名,这是一件很枯燥无味的事情。 如果把这个目录名赋予一个变量,就可以随时使用这个被赋值的变量。当变量前置了$时,变量被引用时就会获取这个路径名。在下面例子里,目录名被赋予一个变 量,然后在一个复制命令里使用了这个变量。ldir被赋予路径名:/home/chris/letters。复制命令等价于cp myletter /home/chris/letters。

  1. ldir=/home/chris/letters  
  2. $ cp myletter $ldir 

可以使用set命令来获得所有已定义变量的列表。如果决定不再需要某个变量,可以使用unset命令来删除它。Unset命令会释放一个变量。