シェルスクリプトを使用してgs
(ghostscript)の呼び出しの簡単な省略形を定義したいと思います。最初の引数はマージすべきすべてのファイルを与え、最後の引数は出力ファイルの名前を与えます。明らかに、以下は機能しません(目標を示すためのものです):可変数の引数でシェルスクリプトを定義する方法は?
#!/bin/sh
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$last $1 $2 ...
どうすればこのことができますか?
通常、このスクリプトはmyscript infile1.pdf infile2.pdf ... outfile.pdf
またはmyscript *.pdf outfile.pdf
で呼び出されます。
ありがとうございます。 * last *(最初の引数ではない)引数として出力ファイル名を持つことは可能ですか? –
Marius Hofert:最後の要素を簡単にシフトすることはできないので、ややこしいことです。次のようなものです: 'outputfile = $ {@:-1}; args =( "$ {@:1:$(($ {#@} - 1))}}") '。あなたはこのラルスクの答えを受け入れるべきです。 – jordanm
あなたはできますが、少し醜いです。 Idelicは彼の答えの例を持っています。あなたはあなたのコードの中でより多くの悩みを解決することになります。 – larsks