我试图调用bash脚本传递标志,如下所示:
bash pdfgrep.ssh "STRING TO SEARCH" "FOLDER_TO_SCAN/*"
脚本:
pdfgrep -H "$1" "$2"
这导致:
poppler/error: Couldn't open file 'FOLDER_TO_SCRAN/*'
任何想法为什么?
答案 0 :(得分:1)
引用变量$2
时,会阻止shell扩展通配符。所以你需要这样做:
pdfgrep -H "$1" $2
但是,如果文件夹名称包含空格,则会出现问题,因为它也会进行单词拆分。如果你允许原始shell扩展通配符,最好不要引用脚本的参数:
bash pdfgrep.ssh "STRING TO SEARCH" FOLDER_TO_SCAN/*
然后你需要更改脚本,以便将所有参数传递给pdfgrep
,而不仅仅是前两个:
pdfgrep -H "$@"
现在我不确定剧本的重点是什么。它只是将-H
选项插入到开头,而不是键入bash pdfgrep.ssh
。