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