#first
#This file looks through all the files in the current
#directory for the string POSIX,and then prints the names of
#those files to the standard output.
for file in *
do
if grep -q POSIX $file
then
echo $file
fi
done
exit 0
该文件保存在/home/henry/目录下,用pwd命令显示出当前所在目录为/home/henry/
我想在shell中运行这个脚本。
如果直接输入:$. first ——就能直接运行成功
如果输入 :$chmod +x first
$./first ——这样显示无法找到文件
想知道第二种方法为什么不行? ------解决方案--------------------
找到了 ,可爱的grep/shell没有识别出带有空格的文件名,
就是你上面的Ubuntu One被认为是两个文件(夹): Ubuntu 和 One .
只要在原来的文件中修改:
```
if grep -q POSIX $file #$file加对引号,变为下面的样子
if grep -q POSIX "$file"
```
我这双引号测试ok了.具体双引号还是单引号还是一个坑,得慢慢啃呢.
------解决方案--------------------
#!/bin/sh
#first
#This file looks through all the files in the current
#directory for the string POSIX,and then prints the names of
#those files to the standard output.
for file in *; do
if grep -q POSIX "$file"; then
echo "$file"
fi
done