আমি একটি বাশ স্ক্রিপ্ট লিখছিলাম এবং হঠাৎ এই আচরণ শুরু হয়েছিল:
[[ 1 < 2 ]]; echo $? # outputs 0
[[ 2 < 13 ]]; echo $? # outputs 1
তবে -lt
সাবলীলভাবে কাজ করে:
[[ 1 -lt 2 ]]; echo $? # outputs 0
[[ 2 -lt 13 ]]; echo $? # outputs 0
আমি কি ঘটনাক্রমে <
কোনওভাবে ওভাররাইট করেছিলাম ?
এই আচরণটি পরীক্ষা করার জন্য আমি এখানে একটি স্ক্রিপ্ট লিখেছি:
#!/bin/bash
for a in {1..5}
do
for b in {1..20}
do
[[ $a < $b ]] && echo $a $b
done
echo
done
এখানে ফলাফল:
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
2 3
2 4
2 5
2 6
2 7
2 8
2 9
2 20
3 4
3 5
3 6
3 7
3 8
3 9
4 5
4 6
4 7
4 8
4 9
5 6
5 7
5 8
5 9
পরিবর্তন <
করার জন্য -lt
স্ক্রিপ্টের মধ্যে স্বাভাবিক আউটপুট (দেয় 5 10
উদাহরণস্বরূপ দেখায়)।
রিবুট করার ফলে কোনও পরিবর্তন হয়নি।
আমার বাশ সংস্করণটি জিএনইউ ব্যাশ, সংস্করণ 4.3.42 (1) -রেলিজ (x86_64-পিসি-লিনাক্স-গনু)। আমি উবুন্টু 15.10 এ আছি। এখানে অন্যান্য তথ্যগুলি কী প্রাসঙ্গিক তা আমি জানি না।
<
অপারেশন, আপনি একটি স্ট্রিং তুলনা তৈরি করছেন, যেহেতু-lt
অপারেটর সাংখ্যিক তুলনা হয়, তাহলে আপনি ফলাফল আপনি তালিকা দেয়া হয়েছে তাকান, তাহলে আপনি এটা বুঝতে হবে। সংখ্যাগতভাবে 2 অন্যান্য বর্ণের বর্ণমালায় 10 এর চেয়ে কম হয়।