मुझे पहले अपनी स्थिति का वर्णन करने दें, मैं एक लिनक्स प्लेटफ़ॉर्म पर काम कर रहा हूं और .bmp
फ़ाइलों का संग्रह है जो filename0022.bmp
से filename0680.bmp
तक चित्र संख्या में से एक को जोड़ता है। तो कुल 658 चित्र। मैं इन तस्वीरों में से प्रत्येक को एक .exe फ़ाइल के माध्यम से चलाने में सक्षम होना चाहता हूं जो चित्र पर चलती है, फिर उपयोगकर्ता द्वारा निर्दिष्ट फ़ाइल में फ़ाइल को बाहर निकाल देती है, इसमें कुछ थ्रेसहोल्ड तर्क भी होते हैं: निचला, ऊपरी। तो निष्पादन के लिए विशिष्ट कॉल है:लिनक्स में टर्मिनल में निष्पादन योग्य कमांड को कैसे लूप करें?
./filter inputfile outputfile lower upper
वहाँ एक रास्ता है कि मैं पाश बस टर्मिनल से या बैश स्क्रिप्ट के कुछ प्रकार बनाने के द्वारा सभी फाइलों पर इस कॉल कर सकते हैं है? मेरी समस्या इस तरह है: Execute a command over multiple files with a batch file लेकिन इस बार मैं एक लिनक्स कमांड लाइन टर्मिनल में काम कर रहा हूं।
for i in *; do
echo "$i" | tr '[:lower:]' '[:upper:]'
done
आप एक विशेष पथ है, तो बदल *
अपना रास्ता + एक ग्लोब द्वारा: उदाहरण के लिए:
यहां मैंने कोशिश की है और यह मेरी स्क्रीन पर कुछ हद तक प्रासंगिक चीजों का एक गुच्छा मुद्रित किया है लेकिन वास्तव में कोई भी फाइल नहीं बनाई है ... #!/Bin/bash के लिए ((एक = 022; एक <= 680; एक ++)) printf करते हैं "./filter भ्रूण-00-2.3.5um__voi0% 04d.bmp fetus_threshold_% 04d 90 240" $ एक किया जहां 90 और 240 निचले और ऊपरी तर्क हैं जिन्हें मैंने पहले उल्लेख किया था। मैंने एक बैश स्क्रिप्ट नहीं बनाई है इसलिए मैंने केवल एक फ़ाइल बनाने के लिए emacs का उपयोग किया जहां मैंने कोड की पिछली पंक्तियां टाइप कीं। मैंने फिर Emacs फ़ाइल को परीक्षण के रूप में सहेजा। इसके पीछे कुछ भी नहीं है क्योंकि मैंने कुछ उदाहरण ऑनलाइन देखा है। कोई और सुझाव? –
इसे एक .sh फ़ाइल (ऊपर किए गए नए जोड़े के साथ) में बनाने का प्रयास करें और फिर उसी निर्देशिका में [[bash myfile.sh]] टाइप करके फ़ाइल चलाएं – scottyaz
अच्छा, अच्छी खबर ... यह कम से कम इसे पुन: सक्रिय करती है समय के आसपास और यह पहली छवि पर भी काम करता है, तो मुझे निष्पादन योग्य उपयोग करने वाले सॉफ़्टवेयर से कुछ त्रुटियां आती हैं। जिस चीज को मैं समझ नहीं पा रहा हूं वह यह है कि यह inputfile0000 पर शुरू करने की कोशिश कर रहा है और हम इसे inputfile0022.bmp से शुरू करने के लिए कहते हैं। मुझे प्राप्त होने वाली एकमात्र आउटपुट छवि outputfile0000.bmp है। यहां बैश फ़ाइल है जिसे मैंने threshold.sh: # के रूप में सहेजा है!/bin/bash ((ए = 022; एक <= 680; ए ++)) printf "./filter6 भ्रूण -00-2_3.5um__rec_voi% 04d.bmp fetus_threshold_% 04d.bmp 90 240" $ a | "sh" किया –