বাশ পাটিগণিত
আর একটি সম্ভাব্য সমাধান হ'ল বাশের বিল্টিন গাণিতিকের জন্য একটি সাধারণ ফাংশন যুক্ত করা। .bashrc
চেষ্টা করার জন্য এটি আপনার ফাইলে রাখুন :
=() {
echo "$(($@))"
}
সুতরাং এখন, আপনার $((...))
আর দরকার নেই, =
যা যথেষ্ট স্বাভাবিক বলে মনে হচ্ছে।
প্রতিস্থাপন
আপনি আরও দ্রুত হতে চাইলে আর একটি জিনিস: আপনি এটিকে p
সাথে +
এবং এর x
সাথে প্রতিস্থাপন করতে পারেন *
। এটি তার জন্য কাজ করবে:
=() {
local IFS=' '
local calc="${*//p/+}"
calc="${calc//x/*}"
echo "$(($calc))"
}
= 5 x 5 # Returns 25
= 50p25 # Returns 75
এখন আপনার Shiftআর দরকার নেই, একমাত্র জিনিস =
পাটিগণিতের সামনে।
হেক্সাডেসিমাল আউটপুট
আউটপুট উভয় দশমিক এবং হেক্সাডেসিমাল প্রদর্শিত হতে পারে, যদি ইচ্ছা। ( দ্রষ্টব্য : x
বিকল্প ব্যবহার 0x...
হেক্স সিনট্যাক্সের সাথে বিরোধ করবে )
=() {
local answer="$(($@))"
printf '%d (%#x)\n' "$answer" "$answer"
}
উদাহরণ:
$ = 16 + 0x10
272 (0x110)
$ = 16**3 + 16**4
69632 (0x11000)
ব্যবহার bc
আপনি যদি আরও কিছু উন্নত গণনা চান তবে আপনি এটি bc
পছন্দ করতে পাইপ করতে পারেন :
=() {
local IFS=' '
local calc="${*//p/+}"
calc="${calc//x/*}"
bc -l <<<"scale=10;$calc"
}
= 'sqrt(2)' # Returns 1.4142135623
= '4*a(1)' # Returns pi (3.1415926532)
প্রদত্ত ফাংশনগুলি bc
নিম্নরূপ (এবং এটি থেকে পাওয়া যাবে man bc
):
sqrt ( expression )
The value of the sqrt function is the square root of the expression.
If the expression is negative, a run time error is generated.
s (x) The sine of x, x is in radians.
c (x) The cosine of x, x is in radians.
a (x) The arctangent of x, arctangent returns radians.
l (x) The natural logarithm of x.
e (x) The exponential function of raising e to the value x.
j (n,x)
The Bessel function of integer order n of x.
এছাড়া সমর্থন if
, for
, while
এবং একটি প্রোগ্রামিং ভাষা যদিও যদি ভাল কথা হতেই পারে মত ভেরিয়েবল একটি ফাইলে লিখতে যদি আপনি যে চেয়েছিলেন।
মনে রাখবেন যে এটি বিকল্প p
এবং x
ফাংশন / পরিবর্তনশীল নামগুলিতে হবে will কেবলমাত্র প্রতিস্থাপনগুলি সরিয়ে ফেলা ভাল।
ব্যবহার gcalccmd
আপনি এইভাবে ফাংশন কল gcalccmd
(থেকে gnome-calculator
) করতে পারেন:
=() {
local IFS=' '
local calc="$*"
# Uncomment the below for (p → +) and (x → *)
#calc="${calc//p/+}"
#calc="${calc//x/*}"
printf '%s\n quit' "$calc" | gcalccmd | sed 's:^> ::g'
}
= 'sqrt(2)' # Returns 1.4142135623
= '4^4' # Returns 256
উপলব্ধ ফাংশনগুলি মনে হয় ( সোর্স কোড থেকে সরাসরি নেওয়া হয়েছে ), ==
সমতুল্য ক্রিয়াকে বোঝায়:
ln()
sqrt()
abs()
int()
frac()
sin()
cos()
tan()
sin⁻¹() == asin()
cos⁻¹() == acos()
tan⁻¹() == atan()
sinh()
cosh()
tanh()
sinh⁻¹() == asinh()
cosh⁻¹() == acosh()
tanh⁻¹() == atanh()
ones()
twos()