我有一个简单的脚本,用于检查html
目录中是否使用了图像。我有一个名为 imageserver.txt 的文件,该文件看起来像:
imageserver/icons/socialmedia/sqcolor_tumblr.png
imageserver/icons/socialmedia/sqcolor_gaf.png
imageserver/icons/socialmedia/sqcolor_yelp.png
imageserver/icons/socialmedia/sqcolor_linkedin.png
.....
这是我的简单脚本
imageSearch.sh
#!/bin/bash
while IFS= read -r var
do
echo "\n ... Searching for $var \n"
if grep -rq $var /var/www/html; then
echo "Image exists ...\n"
echo $var >> doesExist.txt
else
echo "Image does not exist ...\n"
echo $var >> nonExists.txt
fi
done < ./imageserver.txt
现在,这很好用。我只想在if
语句中添加一个元素。我希望echo >>
不仅将$var
打印到doesExist.txt
,而且要在..中找到什么文件,我想我可能需要辅助文件grep
内的if
?
我对doesExist.txt
的期望输入如下:
imageserver/icons/socialmedia/sqcolor_tumblr.png | /var/www/html/file1.html
imageserver/icons/socialmedia/sqcolor_tumblr.png | /var/www/html/file2.html
我很困惑,不确定是否需要辅助grep
或-是否可以从原始grep
语句中的原始if
获取文件名?
如何完成对doesExist.txt
的输入
答案 0 :(得分:3)
更改:
if grep -rq $var /var/www/html; then
echo "Image exists ...\n"
echo $var >> doesExist.txt
一些变化:
results=$(grep -rH "$var" /var/www/html)
if [ $? -eq 0 ]; then
echo "Image exists ...\n"
echo "$results" >> doesExist.txt