বাশ স্ক্রিপ্টে পাস হওয়া আর্গুমেন্টের সংখ্যাটি আমি কীভাবে খুঁজে পাব?
আমার কাছে বর্তমানে এটি রয়েছে:
#!/bin/bash
i=0
for var in "$@"
do
i=i+1
done
এটি করার আরও কি আরও ভাল উপায় আছে?
বাশ স্ক্রিপ্টে পাস হওয়া আর্গুমেন্টের সংখ্যাটি আমি কীভাবে খুঁজে পাব?
আমার কাছে বর্তমানে এটি রয়েছে:
#!/bin/bash
i=0
for var in "$@"
do
i=i+1
done
এটি করার আরও কি আরও ভাল উপায় আছে?
উত্তর:
যুক্তি সংখ্যা $#
আরও জানতে এই পৃষ্ঠায় এটি অনুসন্ধান করুন: http://tldp.org/LDP/abs/html/internvariables.html#ARGLIST
argc
মধ্যে সি-মত ভাষা, $#
হতে হবে 0
যদি সেখানে কোন যুক্তি স্ক্রিপ্ট প্রেরণ হয়, 1
যদি সেখানে একটি আর্গুমেন্ট, ইত্যাদি হয়
#!/bin/bash
echo "The number of arguments is: $#"
a=${@}
echo "The total length of all arguments is: ${#a}: "
count=0
for var in "$@"
do
echo "The length of argument '$var' is: ${#var}"
(( count++ ))
(( accum += ${#var} ))
done
echo "The counted number of arguments is: $count"
echo "The accumulated length of all arguments is: $accum"
bc
, বা অন্য কিছু ব্যবহার করতে হবে (ksh93 এবং zsh এছাড়াও দশমিক গণিত করতে পারে)। আপনার কোডে কিছু ভেরিয়েবলের জন্য ডলার চিহ্ন অন্তর্ভুক্ত রয়েছে, তবে অন্য নয়। এগুলি ব্যবহার সম্পর্কে আপনার সামঞ্জস্য থাকা উচিত। ভিতরে (())
তারা প্রয়োজন হয় না। তারা অবশ্য echo
বিবৃতিতে রয়েছে।
মূল রেফারেন্স যুক্ত করতে:
আপনি বিশেষ পরামিতি থেকে আর্গুমেন্টের সংখ্যা পেতে পারেন $#
। 0 এর মান অর্থ "কোনও যুক্তি নেই"। $#
কেবল পঠনযোগ্য।
যখন shift
আর্গুমেন্ট প্রসেসিংয়ের সাথে একত্রে ব্যবহৃত হয় , $#
প্রতিবার বাশ বিল্টিনকে shift
মৃত্যুদন্ড কার্যকর করার সময় বিশেষ পরামিতি হ্রাস করা হয়।
বিভাগের ৪.৪.২ রেফারেন্স ম্যানুয়ালটি দেখুন বিশেষ পরামিতি :
"শেলটি বেশ কয়েকটি পরামিতি বিশেষভাবে বিবেচনা করে These এই পরামিতিগুলি কেবলমাত্র উল্লেখ করা যেতে পারে "
এবং এই বিভাগে কীওয়ার্ডের জন্য $ # "দশমিকের অবস্থানগত পরামিতিগুলির সংখ্যাতে প্রসারিত হয়" "
নীচে সহজ এক -
বিড়াল countvariable.sh
echo "$@" |awk '{for(i=0;i<=NF;i++); print i-1 }'
আউটপুট:
#./countvariable.sh 1 2 3 4 5 6
6
#./countvariable.sh 1 2 3 4 5 6 apple orange
8
echo "$@" | awk '{print NF}'
যে মানটি ভেরিয়েবলের মধ্যে রয়েছে $#
$#
i+1
ভেরিয়েবলের মধ্যে আক্ষরিক স্ট্রিংটি সংরক্ষণ করেi
।