Übergeben von Parametern an eine BASH-Funktion

Übergeben von Parametern an eine BASH-Funktion

Ich versuche, FoxitReader über die Befehlszeile auszuführen.

Zum Öffnen habe ich diese Funktion erstellt:

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

Und fügen Sie es ein .bashrc. Dies würde keine Dateinamen als Argumente annehmen. Daher foxit mypdf.pdfwürde Foxit geöffnet, aber nicht die Datei.

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

Andererseits würde diese Funktion die Datei(en) öffnen, aber keine Änderungen daran speichern können (was ja der Sinn von FoxitReader ist, da dieses Programm Markierungen in PDFs speichern kann).

Wie kann ich alles so einstellen, dass foxit mypdf.pdf mypdf2.pdfeine Reihe von PDF-Dateien geöffnet werden, als hätte ich darauf geklickt?

Hinweis: Wenn ich über Nautilus zwei oder mehr PDF-Dateien auswähle und die Eingabetaste drücke, kann Foxit sie öffnen, ändern und die Änderungen daran speichern.

FoxitReader.sh:

#!/bin/sh
 appname="FoxitReader"

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

Antwort1

Mit Blick auf dieFoxitReader-Handbuch, es scheint nicht möglich zu sein, mehrere Dateien über die Befehlszeile zu öffnen, wie Sie es versuchen.

Wenn foxitreaderdies Ihr Standard-Handler für PDF ist, sollte dies funktionieren

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

und wenn es nicht die Standardeinstellung ist, versuchen Sie

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

Ich habe es nicht foxitreaderzum Testen installiert, aber es funktioniert gut mitmasterpdfeditor4

verwandte Informationen