awk ,shell编程
ENV=`env | awk -F "= " '{print $1} ' | tr "\n " " "` //这一句是啥意思?。。
KEEP_ENV= "HOSTNAME TERM SHELL PS1 USER PATH PWD HOME "//这个是环境变量列表
for e in $ENV
do
f= "0 "
for k in $KEEP_ENV
do
if [ $k = $e ]
then
f= "1 " //是在这里输出的么?。。
break
fi
done
if [ $f = "0 " ]
then
unset $e
fi
done
env//为什么最后加个env?
,这段代码输出结果是把上面列出的环境变量值显示出来,没列出的就全部unset。请高人帮我讲解下这段代码的意思,awk在这里是如何使用的等等。。谢谢了
------解决方案--------------------awk -F "= " '{print $1} '
显示内容中以“=”分割的第一列数据
------解决方案--------------------ENV=`env | awk -F "= " '{print $1} ' | tr "\n " " "` //这一句是啥意思?。。
=右边是反撇号括起来的一个命令,将此命令执行的结果赋给ENV
1、执行env命令,结果管道(竖线表示管道)输出给awk,awk命令取出前面输出的第一列,然后结果再输出给tr,tr命令将回车替换成空格。
最后加个env,大概跟你的应用有关。
awk的使用比较复杂,这里有一篇介绍:
http://www.chinaunix.net/jh/7/16985.html
------解决方案--------------------//awk -F "= " '{print $1} '
这是awk的固定用法
-F "= "表示用等号作为列分隔符
$1表示第一列
print $1表示在屏幕上打印第一列
------解决方案--------------------env//为什么最后加个env?
======================
最后加个env,显示所有的环境变量啊!