一段shell代码,自己测试了半天,也不知道是什么意思

lovevmwarer
一段shell代码,自己测试了半天,也不知道是什么意思

VAR=" PSN  PNSG  PSF  DGDFG  ORA  SID PMON  SQLPS"
     for LP in $VAR
     do
     [color=Red]  set|cut -d"=" -f1|grep $LP|while read svr[/color]     
       do
          unset $svr
       done
     done


对这一段不太了解,只知道有循环把 'PSN  PNSG  PSF  DGDFG  ORA  SID PMON  SQLPS'依次读入,而cut -d"=" 就是把第一个  "="  前的字符读出来,但是不知道这个set和grep $LP在这里表示什么意思

自己测试了一下
cat test6.txt
aaa=bbb=ccccc


cut -d "=" -f1|grep test6.txt
这样一执行,系统就没有反应

  不知道到底是什么意思!

waker
[url]http://bbs.chinaunix.net/thread-1164444-1-1.html[/url]

jinl
[quote]
set|cut -d"=" -f1|grep $LP|while read svr     
       do
          unset $svr
       done
[/quote]
set显示所有的变量,传给cut截取变量名称,然后用grep 查找包含$LP的变量,最后用unset 清除掉这些符合的变量

lovevmwarer
[quote]原帖由 [i]jinl[/i] 于 2008-6-19 15:34 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8620964&ptid=1164715][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]

set显示所有的变量,传给cut截取变量名称,然后用grep 查找包含$LP的变量,最后用unset 清除掉这些符合的变量 [/quote]



  呵呵,谢谢兄弟的帮忙,我明白了,刚才测试了一下

  不过,不知道为什么后面还要有这么一个 while read svr  ,作用估计只是完成接受set|cut -d"=" -f1|grep $LP 传过来的数值,我想用其他的办法接受这个数值,但是没有成功

   呵呵,谢谢你啦

yuhe27913
用得着两层循环嵌套吗?

ruifox
VAR=" PSN  PNSG  PSF  DGDFG  ORA  SID PMON  SQLPS"
for LP in $VAR
do
       unset `set|cut -d"=" -f1|grep $LP`     
done