आपकी स्क्रिप्ट के साथ (मुख्य) समस्या यह है कि सेटिंग min
और max
एक सबहेल में होती है, न कि आपके मुख्य खोल। तो पाइपलाइन के बाद परिवर्तन दिखाई नहीं दे रहे हैं।
एक और यह है कि आप दो बार पढ़ रहे हैं - इसका इरादा हो सकता है यदि आप हर दूसरी पंक्ति को छोड़ना चाहते हैं, लेकिन यह थोड़ा असामान्य है।
आखिरी बात यह है कि min=a
min
से a
को शाब्दिक रूप से सेट करता है। आप इसे $a
पर सेट करना चाहते हैं।
process substitution का प्रयोग पहली समस्या से छुटकारा पाने के, (संभवतः) गैर-आवश्यक दूसरी पढ़ने को दूर करने, और कार्य फिक्सिंग, अपने कोड की तरह दिखना चाहिए:
max=0
min=20000000
while read a
do
if [[ $a -gt $max ]]
then
max=$a
fi
if [[ $a -lt $min ]]
then
min=$a
fi
done < <(cat) # careful with the syntax
echo $max
echo $min
हम में से उन लोगों के लिए जो अपने पिछले प्रश्न को याद किया, क्या आप इस के लिए अधिक जानकारी प्रदान कर सकते हैं। आप किस बदलाव को बदलने की कोशिश कर रहे हैं? –
भी 'max = a'' max = $ a' होना चाहिए, 'min = a' के साथ' min = $ a' –
होना चाहिए यदि प्रत्येक मान 20000000 से अधिक हो तो 'min' क्या होना चाहिए? मुझे लगता है कि 'min' और' max' आपका पहला मान होना चाहिए ... –