將參數傳遞給 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

相關內容