मैं इसे बहुत ही सरल बैश प्रोग्राम बनाने की कोशिश करता हूं जो निम्नलिखित संचालन करना चाहिए:
एक फ़ाइल जावा एन बार संशोधित करें: हर बार मुझे फ़ाइल की एक पंक्ति में एक शब्द को बदलना होगा (लाइन 11 है) मुझे पता है कि निम्नलिखित कमांड है जो एक प्रोग्राम की एक विशेष पंक्ति में एक शब्द को प्रतिस्थापित करता है wih दूसरे :
sed -i "11s/1/$n/" IC_masslessPlanetesimal.javaयदि मैं उपरोक्त कमांड करता हूं तो मैं केवल एक बार फाइल को संशोधित कर सकता हूं। जावा क्योंकि चक्र के दूसरे पुनरावृत्ति में मेरे पास पहले पुनरावृत्ति के समान शब्द नहीं है: मैं 1 से पंक्ति 11 में शुरू करता हूं, जैसे कि मुट्ठी का पुनरावृत्ति मैं साथ बदलता हूं
$n(यह 2 के बराबर है), लेकिन अब किस तरह मैं संशोधित कर सकता हूंsedशब्द को फिर से बदलने के लिए कमांड (जो अब 2 के बराबर है), उदाहरण के लिए, 11 वीं पंक्ति में 3?फ़ाइल जावा संकलित करें: यह ठीक है;
एक फ़ाइल को संशोधित करें। फिर से: 1 में एक ही समस्या के रूप में) मैं एक पंक्ति में एक शब्द को एक चक्र के साथ या कुछ इस तरह से बदलना चाहता हूं;
इसे एक निष्पादन योग्य फ़ाइल में पास करें: यह दूसरी समस्या है। मैंने param.txt फाइल को मोडिफाई किया है और अब मैं इसे एक्जीक्यूटेबल फाइल में पढ़ना चाहता हूं कार्यकारी । यदि मैं टर्मिनल से ऐसा करता हूं तो मुझे निष्पादन शुरू करना चाहिए आदेश के साथ कार्यक्रम
./execऔर उसके बाद मुझे स्क्रीन से file.txt नाम लिखना होगा। अब क्या bash से प्रोग्राम लॉन्च करना संभव है और इसके साथ file.txt पढ़ना है? मैं इसके साथ प्रयास करता हूं:sed -i "13s/Zero/$n/" param.txt ./exec < param.txt
उस स्क्रिप्ट को param.txt में शून्य 13 से $ n तक लाइन को बदलना होगा किस तरह मैं कमांड के साथ निष्पादन कार्यक्रम लॉन्च कर सकता हूं ./exec विशिष्ट param.txt फ़ाइल के साथ।
#!/bin/bash
n=0
for n in "2" "3"
do
sed -i "11s/1/$n/" IC_masslessPlanetesimal.java
javac IC_masslessPlanetesimal.java
java IC_masslessPlanetesimal
sed -i "13s/Zero/$n/" param.txt
./exec < param.txt
done
बहुत बहुत धन्यवाद !!!
n एक फ़ाइल और अगली बार जब आप चलाते हैं, तो cat एक चर में फ़ाइल, मूल्य में 1 जोड़ें और इसे फ़ाइल में वापस लिखें। फिर एक तर्क में पास होने वाले जावा प्रोग्राम को चलाएं।