我试图调用一个传递标志的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。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!