2016-10-19 5 views
0

Ich verwende oft den folgenden Befehl PDFs zusammenführen:Bashrc Funktion mit Argumenten

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=output_name.pdf /location/of/plots/*.pdf 

Ich habe versucht, eine äquivalente Funktion in meinem .bashrc einrichten:

function(){ 
    gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=$1 $2 
} 

Nun $ function output.pdf input.pdf dauert nur ein Eingang. Wie kann ich das ändern? Idealerweise möchte ich *.pdf als Eingabe übergeben können.

+0

Warum sagen Sie, dass es dauert nur einen Eingang? Die Bash-Funktion kann beliebig viele Parameter annehmen. –

+2

Können Sie versuchen, Argumente zu übergeben, indem Sie sie doppelt angeben "$ function" output.pdf "" input.pdf "' – Inian

+0

@Inian Danke, das funktioniert! – Demosthene

Antwort

3

Die folgende Funktion funktioniert gut für mich:

pdf_merge() { 
    output=$1 
    shift 
    gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="$output" "[email protected]" 
} 
+0

Behoben, damit es für * beliebige * gültige Dateinamen funktioniert. – chepner