linux shell 查询某个结果,放到变量中

linux下安装lamp环境,流程比较繁复
正写一个shell脚本,用于自动化处理
刚入门,特来请教,请不吝赐教。

现在碰到2个问题是:

1,查询系统是否已经安装httpd,如果查到,将其卸载。
rpm -qa | grep httpd
如果有,系统返回类似如下结果:
xxx.httpd.xxxxx
将其卸载
rpm -e xxx.httpd.xxxx

现在的问题是,不知道如何根据 rpm -qa | grep httpd 命令返回的结果保存到变量中,
以便下一步中 rpm -e xxx.httpd.xxxx 当中代入变量,执行卸载。

对各位来说应该很简单。

2, 在 shell 中打开某个文件,在结尾写入一段字符串,并保存

比如在shell中自动执行 vi xxx.txt , 写入一段字符串, 保存。

-----------------------------

以上2个问题,还请各位前辈赐教,谢谢!

作者: iiitom   发布时间: 2011-02-03

现在的问题是,不知道如何根据 rpm -qa | grep httpd 命令返回的结果保存到变量中,
以便下一步中 rpm -e xxx.httpd.xxxx 当中代入变量,执行卸载。
-------------
var=$(rpm -qa | grep httpd)
rpm -e $var

你要注意的是 执行rpm -qa | grep httpd 只要包含httpd关键字的包都会被列举出来 都会被卸载掉。

2, 在 shell 中打开某个文件,在结尾写入一段字符串,并保存
比如在shell中自动执行 vi xxx.txt , 写入一段字符串, 保存。
--------------------------
不就是在文件尾追加吗 那就不用vi打开了!
echo "hello" >> file
就把hello追加到file里了 

要是要追加多句 就这样
cat >>file <<EOF 回车
>输入内容
>输入内容
>输入内容(如果这一句就是你输入的内容的最后一句 回车输入EOF)
>EOF

然后上面那三行的输入内容就被追加到file里了

作者: steptodream   发布时间: 2011-02-03

太感谢熊猫兄了!

祝你新年发大财!

作者: iiitom   发布时间: 2011-02-03

再请教下熊猫兄,关于
写文件到结尾的那一段,

>EOF 即表示将文件写入并关闭吗?

你提到“回车”,下面这一段还需要按“enter"键来完成还是直接写入shell中就可以完全执行了?

------

cat >>file <<EOF 回车
>输入内容
>输入内容
>输入内容(如果这一句就是你输入的内容的最后一句 回车输入EOF)
>EOF

作者: iiitom   发布时间: 2011-02-03