我有以下脚本,需要在网站上找到所有PDF关联页面。 PDF_Search_File.txt内容为PDF文件的URL
Example : /static/pdf/pdf1.pdf
/static/pdf/pdf2.pdf
但是发现结果没有写入输出文件。这里有问题并在下面发布
find . -type f -exec grep -l '$name' '{}' \; >>output_pdf_new.txt
任何信息都会有所帮助。
#!/bin/bash
filename="PDF_Search_File.txt"
while read -r line
do
name="$line"
echo "*******pdf******** - $name\n" >>output_pdf_new.txt
find . -type f -exec grep -l '$name' '{}' \; >>output_pdf_new.txt
echo "*******pdf******** - $name\n" >>output_pdf_new.txt
done < "$filename"
答案 0 :(得分:1)
变量$ name应使用双引号"$name"
而不是单引号。这是处理单引号和双引号的典型shell行为。
答案 1 :(得分:0)
问题在于,由于将输出重定向到文件echo不会显示文本,因此您可以使用tee -a
来执行这两项操作,例如:
#!/bin/bash
filename="PDF_Search_File.txt"
while read -r line
do
name="$line"
echo "*******pdf******** - $name" | tee -a output_pdf_new.txt
find . -type f -exec grep -l "$name" '{}' \; | tee -a output_pdf_new.txt
echo "*******pdf******** - ${name}" | tee -a output_pdf_new.txt
done < "$filename"