Passando parâmetros para uma função BASH

Passando parâmetros para uma função BASH

Estou tentando executar o FoxitReader na linha de comando.

Para abri-lo, criei esta função:

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

E coloque-o .bashrc. Isso não aceitaria nomes de arquivos como argumentos. Então, foxit mypdf.pdfabriria o foxit, mas não o arquivo.

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

Por outro lado, esta função abriria o(s) arquivo(s), mas não seria capaz de salvar as alterações nele (que é o objetivo do FoxitReader, este programa pode salvar destaques em PDFs).

Como posso configurar tudo para foxit mypdf.pdf mypdf2.pdfabrir uma série de arquivos PDF como se eu tivesse clicado neles?

Observação: quando seleciono dois ou mais arquivos PDF por meio do Nautilus e pressiono Enter, o Foxit consegue abrir, alterar e salvar as alterações neles.

FoxitReader.sh:

#!/bin/sh
 appname="FoxitReader"

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

Responder1

Olhando para oManual do FoxitReader, parece não permitir a abertura de vários arquivos na linha de comando da maneira que você está tentando fazer.

Se foxitreaderfor o seu manipulador padrão para PDF, isso deve funcionar

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

e se não for o padrão, tente

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

Não instalei foxitreaderpara testar, mas funciona bem commasterpdfeditor4

informação relacionada