大家看看这个脚本错在哪
cat a#!/bin/bash
echo "keyword:"
read keyword
echo "directory:"
read directory
dir -R $directory | (while read file;
do
grep " $keyword " $file
done
) is it something wrong when you run this shell? 对呀,错的时候有什么提示? keyword:
yes
directory:
/etc/sysconfig
grep: /etc/sysconfig:: 没有那个文件或目录
grep: apmd: 没有那个文件或目录
grep: gpm: 没有那个文件或目录
grep: iptables: 没有那个文件或目录
grep: network-scripts: 没有那个文件或目录
grep: sendmail: 没有那个文件或目录
grep: apm-scripts: 没有那个文件或目录
grep: grub: 没有那个文件或目录
grep: irda: 没有那个文件或目录
grep: ntpd: 没有那个文件或目录
grep: static-routes: 没有那个文件或目录
grep: authconfig: 没有那个文件或目录
grep: harddisks: 没有那个文件或目录
grep: keyboard: 没有那个文件或目录
grep: pcmcia: 没有那个文件或目录
grep: syslog: 没有那个文件或目录
grep: clock: 没有那个文件或目录
grep: hwconf: 没有那个文件或目录
grep: kudzu: 没有那个文件或目录
grep: rawdevices: 没有那个文件或目录
grep: xinetd: 没有那个文件或目录
grep: console: 没有那个文件或目录
grep: i18n: 没有那个文件或目录
grep: mouse: 没有那个文件或目录
grep: redhat-config-users: 没有那个文件或目录
grep: desktop: 没有那个文件或目录
grep: init: 没有那个文件或目录
grep: network: 没有那个文件或目录
grep: redhat-logviewer: 没有那个文件或目录
grep: firstboot: 没有那个文件或目录
grep: installinfo: 没有那个文件或目录
grep: networking: 没有那个文件或目录
grep: rhn: 没有那个文件或目录 权限够吗? 没有权限 chmod 747 filename cat a
#!/bin/bash
echo "keyword:"
read keyword
echo "directory:"
read directory
grep -R $keyword $directory
done 你用done干吗? 我是莱鸟。
原来是不用done的 你不用循环done就不用了吧! 用循环不是用fi结束`的吗? 用循环不是用fi结束`的吗?
if是用fi结束的! 第一个帖子中的问题在于管道会启动新的 shell 进程,更不用说你还加了一对括号,这样前面的 $keyword 是不会传递到后面的 while 循环中的。解决的办法是把 while 写到当前的 shell 中执行:
#!/bin/bash
echo "keyword:"
read keyword
echo "directory:"
read directory
while read file;
do
grep " $keyword " $file
done < dir -R $directory
参考 http://www.linuxforum.net/forum/showflat.php?Cat=&Board=vrml&Number=411233&page=&view=&sb=&o=&vc=1 不行 提示错误
done < dir -R $directory
页:
[1]
2