我在第14行和第16行遇到问题,其中有嵌套的if语句。它返回命令未找到错误,但我测试了该部分代码,并且可以在其他地方使用。
#passing the argument page page.html
cat $1 | grep -o "wp-cli.org/commands/cache/\w*/\"" > temp.txt
#creating all pdf files
for i in $(cat temp.txt)
do
source=$(echo $i | grep -o -P "wp-cli.org/commands/cache/\w+")
dest=$(echo $i | grep -o -P "\w+/\"" | grep -o -P "\w+")
#echo $source $dest
wkhtmltopdf $source $dest".pdf"
pdfCount=$(ls *pdf | wc -l)
echo $pdfCount
if [ ! -f sample.pdf ]
then
if [$pdfCount -eq 1]
then
firstPdf=$dest".pdf"
fi
if [$pdfCount -eq 2]
then
pdfunite $firstPdf $dest".pdf" sample.pdf
fi
else
pdfunite $dest".pdf" oldsample.pdf sample.pdf
mv sample.pdf oldsample.pdf
fi
done
任何人都有这个想法?感谢...
答案 0 :(得分:5)
在[和<]之前需要一个空格
答案 1 :(得分:1)
在开始括号之后和结束之前需要空格:
@Lazy
应该是:
[$pdfCount -eq 1]
假设[ $pdfCount -eq 1 ]
包含pdfCOunt
,那么shell将要查找的命令是1
,它是[$pdfCount
,并且是一个不存在的命令,因此你看到的错误信息。