Передача параметров в функцию 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-файлов, как будто я на них кликнул?

Примечание: когда я выбираю два или более PDF-файлов через Nautilus и нажимаю Enter, Foxit может открывать, изменять и сохранять изменения в них.

FoxitReader.sh:

#!/bin/sh
 appname="FoxitReader"

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

решение1

Глядя наРуководство пользователя FoxitReader, похоже, он не позволяет открывать несколько файлов из командной строки так, как вы пытаетесь сделать.

Если foxitreaderэто ваш обработчик по умолчанию для PDF, то это должно работать.

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

и если это не значение по умолчанию, то попробуйте

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

Я не устанавливал foxitreader, чтобы проверить, но работает отлично.masterpdfeditor4

Связанный контент