bash - একটি বাশ শেল স্ক্রিপ্ট ইনপুট যুক্তি অস্তিত্ব পরীক্ষা করুন
shell (6)
আমি একটি ইনপুট যুক্তি অস্তিত্ব পরীক্ষা করতে হবে। আমি নিম্নলিখিত স্ক্রিপ্ট আছে
if [ "$1" -gt "-1" ]
then echo hi
fi
আমি পাই
[: : integer expression expected
আমি কিভাবে বিদ্যমান তা দেখতে ইনপুট arg11 প্রথম চেক করব?
আমি প্রায়শই সহজ স্ক্রিপ্টগুলির জন্য এই স্নিপেটটি ব্যবহার করি:
#!/bin/bash
if [ -z "$1" ]; then
echo -e "\nPlease call '$0 <argument>' to run this command!\n"
exit 1
fi
আর্গুমেন্ট স্ক্রিপ্টে প্রেরিত হলে সনাক্ত করার আরেকটি উপায়:
((!$#)) && echo No arguments supplied!
উল্লেখ্য যে (( expr ))
নিয়ম অনুসারে অভিব্যক্তিটির মূল্যায়ন করে।
কোনো আর্গুমেন্ট অনুপস্থিতিতে প্রস্থান করার জন্য, একজন বলতে পারেন:
((!$#)) && echo No arguments supplied! && exit 1
আরেকটি (অনুরূপ) উপায়ে বলতে হবে:
let $# || echo No arguments supplied
let $# || { echo No arguments supplied; exit 1; } # Exit if no arguments!
help let
:
let: let arg [arg ...]
Evaluate arithmetic expressions. ... Exit Status: If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.
এটা এই ভাবে প্রদর্শন করা ভাল
if [[ $# -eq 0 ]] ; then
echo 'some message'
exit 1
fi
আপনি খুব কম আর্গুমেন্ট আছে যদি আপনি সাধারণত প্রস্থান করার প্রয়োজন।
এটা:
if [ $# -eq 0 ]
then
echo "No arguments supplied"
fi
$#
পরিবর্তনশীল আপনাকে স্ক্রিপ্টটি পাস করা ইনপুট আর্গুমেন্টগুলির সংখ্যা জানাবে।
অথবা আপনি যদি একটি আর্গুমেন্ট খালি স্ট্রিং বা না চান তা পরীক্ষা করতে পারেন:
if [ -z "$1" ]
then
echo "No argument supplied"
fi
"$ 1" সম্প্রসারণ একটি নাল স্ট্রিং বা না হলে -z
সুইচ পরীক্ষা করবে। এটি একটি নাল স্ট্রিং তারপর শরীর মৃত্যুদন্ড কার্যকর করা হয়।
পয়েন্ট করার জন্য আরো একটি বেস পয়েন্ট রয়েছে কারণ শুধুমাত্র আমি আপনার স্ট্রিংটি পরীক্ষা করতে পারেন যোগ করব নাল:
if [ "$1" ]; then
echo yes
else
echo no
fi
একইভাবে আপনি যদি আর্গ কাউন্টির প্রত্যাশা করেন তবে আপনার শেষ পরীক্ষা করুন:
if [ "$3" ]; then
echo has args correct or not
else
echo fixme
fi
এবং তাই কোনো আর্গুমেন্ট বা var সঙ্গে
যদি আপনি আর্গুমেন্টটি বিদ্যমান কিনা তা পরীক্ষা করতে চান তবে আপনি # টি আর্গুমেন্ট আপনার টার্গেট যুক্তি নম্বরের চেয়ে বড় বা সমান কিনা তা পরীক্ষা করতে পারেন।
নিম্নলিখিত স্ক্রিপ্ট কিভাবে কাজ করে তা প্রদর্শন করে
test.sh
#!/usr/bin/env bash
if [ $# -ge 3 ]
then
echo script has at least 3 arguments
fi
নিম্নলিখিত আউটপুট উত্পাদন করে
$ ./test.sh
~
$ ./test.sh 1
~
$ ./test.sh 1 2
~
$ ./test.sh 1 2 3
script has at least 3 arguments
$ ./test.sh 1 2 3 4
script has at least 3 arguments