将参数传递给 BASH 函数

将参数传递给 BASH 函数

我正在尝试从命令行运行 FoxitReader。

为了打开它,我创建了这个函数:

foxit(){
    /home/quora/opt/foxitsoftware/foxitreader/FoxitReader.sh 
    }
export -f foxit

并把它放进去.bashrc。这不会将文件名作为参数。所以,foxit mypdf.pdf会打开foxit,但不会打开文件。

foxit(){
    /home/quora/opt/foxitsoftware/foxitreader/FoxitReader.sh "$@"
    }
export -f foxit

另一方面,此函数将打开文件,但无法保存对其所做的更改(这就是 FoxitReader 的全部要点,该程序可以将突出显示保存到 pdf 中。)。

我怎样才能设置所有内容,以便foxit mypdf.pdf mypdf2.pdf打开一系列 pdf 文件,就像我单击了它们一样?

注意:当我通过 Nautilus 选择两个或多个 pdf 文件并按 Enter 键时,Foxit 能够打开、更改和保存对它们的更改。

福昕阅读器.sh:

#!/bin/sh
 appname="FoxitReader"

 selfpath="/home/d4/opt/foxitsoftware/foxitreader"
 exec "$selfpath/$appname" "$@"

答案1

看着福昕阅读器使用手册,它似乎不允许以您尝试的方式从命令行打开多个文件。

如果foxitreader是您的 pdf 默认处理程序,那么这应该可以工作

#!/bin/bash
for var in "$@"
do
    xdg-open "$var"
done

如果它不是默认的那么尝试

#!/bin/bash
for var in "$@"
do
    FoxitReader "$var" &
done

我没有foxitreader安装来测试,但它工作得很好masterpdfeditor4

相关内容