我想通過shell腳本定義一個調用gs
(ghostscript)的簡單縮寫。第一個參數給出了所有應該合併的文件,最後一個給出了輸出文件的名稱。顯然,下面不工作(這只是用於顯示的目標):如何用可變數量的參數定義一個shell腳本?
#!/bin/sh
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$last $1 $2 ...
如何才能做到這一點?
通常會通過myscript infile1.pdf infile2.pdf ... outfile.pdf
或myscript *.pdf outfile.pdf
調用此腳本。
謝謝。輸出文件名可能是* last *(不是第一個)參數嗎? – 2012-04-24 23:32:19
Marius Hofert:你不可能輕易地將最後一個元素轉移出去,所以這有點棘手。像這樣:'outputfile = $ {@:-1}; ARGS =( 「$ {@:1:$(($ {#@} - 1))}」)'。你應該接受這個騙局的答案。 – jordanm 2012-04-25 01:43:43
你*可以*,但它有點難看。 Idelic在他的回答中有一個例子。你最終會在代碼中引入更多的東西。 – larsks 2012-04-25 02:50:06