উত্তর:
মানুষ বাশ
echo [-neE] [arg ...]
Output the args, separated by spaces, followed by a newline.
The return status is 0 unless a write error occurs. If -n is
specified, the trailing newline is suppressed. If the -e option
is given, interpretation of the following backslash-escaped
characters is enabled.
[...]
Arithmetic Expansion
Arithmetic expansion allows the evaluation of an arithmetic expression
and the substitution of the result. The format for arithmetic expan‐
sion is:
$((expression))
[...]
Constants with a leading 0 are interpreted as octal numbers. A leading
0x or 0X denotes hexadecimal. Otherwise, numbers take the form
[base#]n, where the optional base is a decimal number between 2 and 64
representing the arithmetic base, and n is a number in that base. If
base# is omitted, then base 10 is used. When specifying n, the digits
greater than 9 are represented by the lowercase letters, the uppercase
letters, @, and _, in that order. If base is less than or equal to 36,
lowercase and uppercase letters may be used interchangeably to repre‐
sent numbers between 10 and 35.
man bash | wc
[জিএনইউ বাশ, সংস্করণ 3.2.57] ম্যান পৃষ্ঠাটি 4890 লাইন, 37094 শব্দ , 329778 টি অক্ষর হতে পারে indicates এই উত্তরটি স্ট্রিপ করে যা কেবলমাত্র 7 টি লাইন, 176 শব্দ , 1115 অক্ষর যা প্রাসঙ্গিক। আমি মনে করি যে উত্তরটি আপনার উত্সাহের দাবিদার। (এই মন্তব্য হিসাবে ;-)
এখানে দস্তাবেজ থেকে: https://tiswww.case.edu/php/chet/bash/bashref.html# শেল- আরিথমেটিক
শীর্ষস্থানীয় 0 সহ ধ্রুবকগুলি অষ্টাল সংখ্যা হিসাবে ব্যাখ্যা করা হয়। একটি শীর্ষস্থানীয় '0x' বা '0 এক্স' হেক্সাডেসিমালকে বোঝায়। অন্যথায়, সংখ্যাগুলি [বেস #] এন রূপ নেয়, যেখানে alচ্ছিক বেসটি পাটিগণিত বেসকে উপস্থাপন করে 2 এবং 64 এর মধ্যে দশমিক সংখ্যা, এবং n সেই বেসের একটি সংখ্যা। যদি বেস # বাদ দেওয়া হয়, তবে বেস 10 ব্যবহার করা হবে। N নির্দিষ্ট করে দেওয়ার সময়, 9 টিরও বেশি সংখ্যার সংখ্যাটি ছোট হাতের অক্ষর, বড় হাতের অক্ষর, '@' এবং '_' দ্বারা অর্ডার করে। যদি বেসটি 36 এর চেয়ে কম বা তার সমান হয় তবে ছোট এবং বড় হাতের অক্ষরগুলি 10 এবং 35 এর মধ্যে সংখ্যার প্রতিনিধিত্ব করতে আন্তরচিকভাবে ব্যবহার করা যেতে পারে।
সুতরাং echo $((16#FF))
আউটপুট 255
এবং echo $((2#0110))
আউটপুট6
ইপুরের উত্তরটি দুর্দান্ত তবে খুব সামান্য অসম্পূর্ণ। ব্যাশ ম্যান পৃষ্ঠার উদ্ধৃত অংশ উল্লেখ করে যে বাক্য গঠনটি কেবল ধ্রুবকদের জন্য কাজ করে, এবং একটি ধ্রুবক নয়। আপনি জিজ্ঞাসা করা উচিত কিভাবে এই সত্যিই কাজ করে![base#]n
2#$1
সম্প্রসারণ
কমান্ড লাইনে এটি শব্দগুলিতে বিভক্ত হওয়ার পরে সম্প্রসারণ করা হয়। এখানে সাত ধরণের সম্প্রসারণ করা হয়: ব্রেস এক্সপেনশন, টিলডে এক্সপেনশন, প্যারামিটার এবং ভেরিয়েবল এক্সপেনশন, কমান্ড সাবস্টিটিউশন, পাটিগণিতের সম্প্রসারণ, শব্দ বিভাজন এবং পথের নাম সম্প্রসারণ।
বিস্তারের ক্রম: ব্রেস সম্প্রসারণ; টিলডে সম্প্রসারণ, প্যারামিটার এবং পরিবর্তনশীল সম্প্রসারণ, পাটিগণিতের সম্প্রসারণ এবং কমান্ড প্রতিস্থাপন (বাম থেকে ডান ফ্যাশনে সম্পন্ন); শব্দ বিভাজন; এবং পথের নাম সম্প্রসারণ।
মূলত বাশ প্রথমে ভেরিয়েবল সাবস্টিটিউশন করছে, যাতে $1
এর মানটির সাথে প্রথমে প্রতিস্থাপন করা হয়। তবেই এটি গাণিতিক সম্প্রসারণ করে যা কেবলমাত্র একটি সঠিক ধ্রুবক দেখায়।
$1
এটি ইনপুট" "
$1
করুন গণিতের এক্সপ্রেশন মূল্যায়নের আগে একটি পরামিতি ধ্রুবক উত্পাদন করতে প্যারামিটারটি প্রসারিত করা হয়েছে। gnu.org/software/bash/manual/bash.txt , বিভাগ 3.5 দেখুন"