![将参数传递给 BASH 函数](https://linux22.com/image/154388/%E5%B0%86%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%E7%BB%99%20BASH%20%E5%87%BD%E6%95%B0.png)
我正在尝试从命令行运行 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