আমি আপনার কোডটি কোনও ফাইলের মধ্যে কাটাতে পেরেছি এবং এটি সঠিকভাবে চলেছে। আপনি যদি এটিকে কার্যকর করেন তবে এটি কাজ করা উচিত:
আপনার "file.sh":
#!/bin/bash
if [ $# -lt 3 -o $# -gt 3 ]; then
echo "Error... Usage: $0 host database username"
exit 0
fi
আদেশ:
$ ./file.sh arg1 arg2 arg3
নোট করুন যে "file.sh" অবশ্যই সম্পাদনযোগ্য হতে হবে:
$ chmod +x file.sh
আপনি কীভাবে ইনপুট (ডাব্লু / পাইপ, গাজর ইত্যাদি) করছেন সে বিষয়ে আপনি সম্ভবত ত্রুটিটি পেয়ে যাচ্ছেন / আপনি শর্তটি দুটি বিভক্ত করার চেষ্টা করতে পারেন:
if [ $# -lt 3 ] || [ $# -gt 3 ]; then
echo "Error... Usage: $0 host database username"
exit 0
fi
বা, যেহেতু আপনি ব্যবহার করছেন bash
, আপনি বিল্ট-ইন সিনট্যাক্স ব্যবহার করতে পারেন:
if [[ $# -lt 3 || $# -gt 3 ]]; then
echo "Error... Usage: $0 host database username"
exit 0
fi
এবং, অবশেষে, আপনি অবশ্যই কেবল 3 টি যুক্তি দেওয়া হয়েছে কিনা তা পরীক্ষা করে দেখতে পারেন (পরিষ্কার, POSIX শেল সামঞ্জস্যতা বজায় রাখে):
if [ $# -ne 3 ]; then
echo "Error... Usage: $0 host database username"
exit 0
fi