பேஷ் ஸ்கிரிப்டில் வாதத்தை நான் எவ்வாறு நிறைவேற்றுவது?

How Do I Pass Argument Bash Script



பெரும்பாலான லினக்ஸ் புதினா 20 பயனர்கள் ஒரு வாதத்தை பாஷ் ஸ்கிரிப்ட்டில் அனுப்பும்போது சிக்கிக்கொண்டனர். எந்த பேஷ் ஸ்கிரிப்ட்டையும் செயல்படுத்தும்போது நீங்கள் வாதங்களை அனுப்பலாம். பாஷ் ஸ்கிரிப்டில் வாதங்களை அனுப்ப பல எளிய மற்றும் பயனுள்ள வழிகள் உள்ளன. இந்த கட்டுரை வழிகாட்டியில், உங்கள் பேஷ் ஸ்கிரிப்ட்களில் வாதங்களை கடந்து செல்ல மற்றும் பயன்படுத்த சில மிக எளிதான வழிகளைப் பற்றி நாங்கள் உங்களுக்குத் தெரியப்படுத்துவோம்.

இயல்புநிலை மாறிகளைப் பயன்படுத்தி வாதங்களை நிறைவேற்றுவது:

தொடு கட்டளையைப் பயன்படுத்தி எந்தவொரு பெயருடனும் ஒரு புதிய கோப்பை உருவாக்கவும், எ.கா., file.sh.







$தொடுதல்கோப்பு பெயர்



புதிதாக உருவாக்கப்பட்ட இந்தக் கோப்பைத் திறந்து அதில் சில பேஷ் ஸ்கிரிப்டைச் சேர்க்கவும். நான் சில இயல்புநிலை மாறிகளைச் சேர்த்துள்ளேன், எ.கா. இதன் விளைவாக $ 1, $ 2 மற்றும் $ 3. எந்த வாதங்கள் முனையம் வழியாக அனுப்பப்பட்டாலும் அது குறிப்பிடப்பட்ட மாறிகளில் சேமிக்கப்படும்.







நீங்கள் இந்த கோப்பை ./ கட்டளையைப் பயன்படுத்தி சில வாதங்களை இயக்க வேண்டும். நான் வாதங்களை நிறைவேற்றும்போது ஒரு பிழை ஏற்படுகிறது என்பதை படத்தில் நீங்கள் பார்க்க முடியும்: அனுமதி மறுக்கப்பட்டது. ஏனென்றால் இந்தக் கோப்பில் செயல்படுத்தும் உரிமை இல்லை.

$./கோப்பு பெயர் வாதம் 1 வாதம் 2 வாதம்

எனவே இந்தக் கோப்பில் செயல்படுத்தும் உரிமைகளை வழங்க, sudo chmod கட்டளையைப் பயன்படுத்தவும்.



$சூடோ chmod+x கோப்பு பெயர்

இப்போது, ​​மீண்டும் அதே கட்டளையைப் பயன்படுத்தி கோப்பை இயக்கவும். இந்த முறை நான் பல்வேறு வாதங்களை வழங்கியுள்ளேன். புதிதாக நிறைவேற்றப்பட்ட வாதங்கள் இயல்புநிலை மாறிகளில் சேமிக்கப்படுவதை நீங்கள் காண்பீர்கள்.

வாதமாக ஷெல் ஸ்கிரிப்ட் பெயரை அனுப்புதல்:

இப்போது, ​​அதே பழைய கோப்பு file.sh ஐப் பயன்படுத்தி அதன் இயல்புநிலை மாறிகளில் சிறிது மாற்றம். ஸ்கிரிப்டில் காட்டப்பட்டுள்ளபடி நீங்கள் $ 0 மாறி சேர்க்க வேண்டும்.

அதே ./ ஷெல் ஸ்கிரிப்ட் கட்டளையை இயக்கும்போது, ​​உங்கள் ஷெல் ஸ்கிரிப்டின் பெயர், எ.கா. ./filename ஒரு வாதமாக $ 0 மாறியில் சேமிக்கப்படும்.

மாறுபடும் வரிசையாக வாதங்களை அனுப்புதல்:

அதே file file.sh இல் தொடங்கி, பழைய ஸ்கிரிப்டில் சில கூடுதல் வரிகளைச் சேர்க்க வேண்டும். வரிசை என்ற ஒரு மாறியை அறிவிக்கவும். இயல்புநிலை மாறியைச் சேர்க்கவும் [மின்னஞ்சல் பாதுகாக்கப்பட்ட] இது பயனரால் உள்ளிடப்பட்ட வாதங்களை வரிசையாகச் சேமிக்கும். இந்த வாதங்கள் மாறி வரிசைக்கு பகுக்கப்படும். குறியீட்டு எண்ணால் வரிசைப்படுத்தப்பட்ட மாறி வரிசையின் அனைத்து வாதங்களையும் கடைசி வரி காண்பிக்கும்.

./ ஷெல் ஸ்கிரிப்டை இயக்கவும். [Email Protected] இல் வரிசையாக சேமிக்கப்பட்ட வாதங்கள் அல்லது மதிப்புகள் மாறி வரிசைக்கு அலசப்படுகிறது ஆனால் இரண்டாவது எதிரொலி அறிக்கையில் ஷெல் ஸ்கிரிப்ட் பெயர் அல்ல என்பதை நீங்கள் காண்பீர்கள். நீங்கள் பின்வரும் வெளியீட்டைப் பெறுவீர்கள்.

$./கோப்பு பெயர் வாதம் 1 வாதம் 2 வாதம்

அதே ஸ்கிரிப்டுடன் அதே கோப்பைப் பயன்படுத்தவும். படத்தில் தெளிவாக உள்ளது போல் கடைசி வரியிலிருந்து $ {array [3]} ஐ அகற்றவும்.

./ கட்டளையை செயல்படுத்திய பிறகு, மேலே உள்ள எடுத்துக்காட்டில் எந்த மாற்றமும் இல்லாமல் நீங்கள் இதே போன்ற வெளியீட்டைப் பார்ப்பீர்கள்.

பாஷ் ஸ்கிரிப்டின் கடைசி வரியை ஒரு ஒற்றை வார்த்தையுடன் மாற்றுவதன் மூலமும் அதே முடிவைப் பெறலாம். எதிரொலி அறிக்கையில் நீங்கள் [மின்னஞ்சல் பாதுகாக்கப்பட்டவை] சேர்க்க வேண்டும், அது இந்த மாறி வரிசையில் இருக்கும் வாதங்களைக் காண்பிக்கும்.

எனவே ./ கட்டளையை மீண்டும் இயக்கினால், நீங்கள் அதே முடிவுகளைப் பெறுவீர்கள்.

நிறைவேற்றப்பட்ட வாதங்களின் மொத்த எண்ணிக்கையை சரிபார்க்கவும்:

மாறாக, பயனர் அனுப்பிய வாதங்களின் மொத்த எண்ணிக்கையை நீங்கள் தெரிந்து கொள்ள விரும்பினால், நீங்கள் அதைச் செய்யலாம். இந்த நோக்கத்திற்காக, நீங்கள் எதிரொலியில் $# உடன் [மின்னஞ்சல் பாதுகாக்கப்பட்டவை] மாற்ற வேண்டும்.

மீண்டும் ./ கட்டளையை செயல்படுத்துவதன் மூலம், ஸ்கிரிப்டுக்கு அனுப்பப்பட்ட வாதங்களின் முழு உருவத்தையும் நீங்கள் இப்போது பார்க்கப் போகிறீர்கள். எங்கள் விஷயத்தில், 3 வாதங்கள் மதிப்பாக அனுப்பப்படுகின்றன.

வாதங்களின் வரி வெளியீட்டின் மூலம் ஒரு வரியை உருவாக்கவும்:

முகப்பு கோப்பகத்தில் ஒரு புதிய கோப்பு test.sh ஐ உருவாக்கவும். காட்டப்பட்டுள்ளபடி பாஷ் ஸ்கிரிப்டைச் சேர்க்கவும்.

இப்போது அதே பழைய கட்டளையை வெவ்வேறு வாதங்களுடன் இயக்கவும். முதலில், நீங்கள் பிழையைக் காண்பீர்கள்: அனுமதி மறுக்கப்பட்டது.

இந்த கோப்புக்கு சூடோ சலுகைகளை வழங்க நீங்கள் chmod கட்டளையை இயக்க வேண்டும். அதன் பிறகு, ./ ஷெல் ஸ்கிரிப்ட் கட்டளையை மீண்டும் இயக்கவும். வாதங்களின் வரிசை வரிசைப்படுத்தப்பட்ட வெளியீட்டை நீங்கள் பெறுவீர்கள்.

வாதக் குறியீட்டு எண் வழியாக மாறி வரம்பிடவும்:

மாறியை அதன் குறியீட்டு எண்ணைப் பயன்படுத்தி மட்டுப்படுத்த விரும்பினால், நீங்கள் அதை மிக எளிதாகச் செய்யலாம். $ அடையாளத்திற்குப் பிறகு சுருள் அடைப்புக்குறிகளைச் சேர்த்து, பிற வாதங்களுக்கு முன் நீங்கள் காட்ட விரும்பும் வாத குறியீட்டு எண்ணைச் சேர்க்கவும்.

பயனர்கள் வழங்கிய வாதங்கள் வரம்பு மாறியில் வழங்கப்பட்ட குறியீட்டு எண்ணை விட குறைவாக இருந்தால், நீங்கள் ஒரு வெற்று வாத மதிப்பைப் பெறுவீர்கள். உதாரணமாக, நான் 4 வாதங்களை வழங்கியுள்ளேன், ஆனால் 05 வாத மதிப்பு காண்பிக்கப்பட வேண்டும் என்று கொடுத்துள்ளேன். இந்த சூழ்நிலையில், மாறி காலியாக காட்டப்படும், ஏனெனில் ஐந்தாவது வாதம் நிறைவேற்றப்படவில்லை.

ஆனால் கட்டளையில் சமமான அல்லது அதற்கு மேற்பட்ட வாதங்களை நீங்கள் அனுப்பும்போது, ​​காட்டப்பட்டுள்ளபடி முடிவில் காட்டப்படும் மதிப்பைப் பெறுவீர்கள்.

குறிப்பிட்ட மதிப்பு வாதங்களை சரிபார்க்கிறது:

உங்கள் வீட்டு கோப்பகத்தில் Check.sh என்ற பெயரில் ஒரு புதிய கோப்பை உருவாக்கவும். கீழே உள்ள படத்தில் காட்டப்பட்டுள்ள அதே பேஷ் ஸ்கிரிப்டைச் சேர்க்கவும். இந்த ஸ்கிரிப்டில், பயனரால் அனுப்பப்பட்ட வாத மதிப்பை சேமிக்க ஒரு மாறி var உள்ளது. பின்னர் எங்களிடம் ஒரு if அறிக்கை உள்ளது, இது வாத மதிப்பு பொருந்துமா இல்லையா என்பதை சரிபார்க்கும். அடைப்புக்குறிக்குள் கொடுக்கப்பட்ட மதிப்புடன் வாத மதிப்பு பொருந்தினால், முதல் எதிரொலி அறிக்கை செயல்படுத்தப்படும். மதிப்பு பொருந்தவில்லை என்றால், இரண்டாவது எதிரொலி அறிக்கை செயல்படுத்தப்படும்.

நாம் ஷெல் ஸ்கிரிப்ட் கட்டளையை இயக்கும்போது, ​​அது ஒரு பிழையை எழுப்பும். Chmod கட்டளையைப் பயன்படுத்துவதன் மூலம், இந்த பிழையை நாம் சரிசெய்யலாம்.

அதன் பிறகு, குறிப்பிட்ட வாத மதிப்புடன் குறிப்பிட்ட கோப்புக்கான ஷெல் ஸ்கிரிப்டை இயக்கவும். எங்கள் விஷயத்தில், அக்சாவை ஒரு வாத மதிப்பாக வழங்கியுள்ளோம், இது அடைப்புக்குறிக்குள் காட்டப்படும் மதிப்புக்கு சமம். எனவே பாஷ் ஸ்கிரிப்ட் காட்டப்பட்டுள்ளபடி முதல் எதிரொலி அறிக்கையை இயக்கும்.

மறுபுறம், நீங்கள் ஷெல் ஸ்கிரிப்டில் வெவ்வேறு வாத மதிப்புகளை வழங்கினால், அது மற்ற எதிரொலி அறிக்கையைக் காண்பிக்கும். இங்கே, நான் ரிம்ஷாவை ஒரு வாத மதிப்பாகச் சேர்த்துள்ளேன், இது if அறிக்கையில் வழங்கப்பட்ட மதிப்பிலிருந்து வேறுபட்டது. எனவே பாஷ் ஸ்கிரிப்ட் இரண்டாவது எதிரொலி அறிக்கையை செயல்படுத்துகிறது.

முடிவுரை:

வாதங்களை இயல்புநிலை மாறிகள், வாத மதிப்பை ஒரு வரிசைக்கு ஒரு வரிசைக்கு அனுப்புவது, மொத்த வாதங்களின் எண்ணிக்கை, வாதங்களின் வரி வரிசை வெளியீடு, வாதத்தை கட்டுப்படுத்துவது போன்றவற்றில் வலுவான பிடியை வைத்திருக்க இந்த வழிகாட்டி உங்களுக்கு போதுமான அளவு உதவியது என்று நம்புகிறேன். குறியீட்டு எண்ணைப் பயன்படுத்தி வெளியீடு, குறிப்பிட்ட மதிப்பு வாதம் மற்றும் பலவற்றைச் சரிபார்க்கிறது.