मैं एक शेल स्क्रिप्ट के माध्यम से gs
(भूतस्क्रिप्ट) पर कॉल का एक सरल संक्षेप परिभाषित करना चाहता हूं। पहला तर्क उन सभी फ़ाइलों को देता है जिन्हें विलय किया जाना चाहिए, अंतिम व्यक्ति आउटपुट फ़ाइल का नाम देता है। जाहिर है, निम्नलिखित काम नहीं करता है (यह केवल लक्ष्य दिखाने के लिए है):तर्कों की चर संख्या के साथ एक खोल स्क्रिप्ट को परिभाषित करने के लिए कैसे?
#!/bin/sh
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$last $1 $2 ...
यह कैसे किया जा सकता है?
कोई आमतौर पर myscript infile1.pdf infile2.pdf ... outfile.pdf
या myscript *.pdf outfile.pdf
के माध्यम से इस स्क्रिप्ट को कॉल करेगा।
धन्यवाद लार्क्स। क्या आउटपुट फ़ाइल नाम * आखिरी * (पहले नहीं) तर्क के रूप में संभव है? –
मारियस होफर्ट: आप आसानी से अंतिम तत्व को नहीं हटा सकते हैं, इसलिए यह थोड़ा और मुश्किल है। ऐसा कुछ: 'outputfile = $ {@: -1}; आर्ग = ("$ {@: 1: $ (($ {# @} - 1))}") '। आपको इस लार्क्स के जवाब को स्वीकार करना चाहिए। – jordanm
आप * कर सकते हैं *, लेकिन यह थोड़ा बदसूरत है। इडेलिक के पास उनके जवाब में एक उदाहरण है। आप अपने कोड में बहुत अधिक क्रूर के साथ खत्म हो जाते हैं। – larsks