வாதங்களை பாஷ்-ஸ்கிரிப்ட்டுக்கு எவ்வாறு அனுப்ப வேண்டும்

கட்டளைகள், தொடரியல் மற்றும் எடுத்துக்காட்டுகள்

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

எடுத்துக்காட்டுக்கு, ஒரு கோப்பில் ஒரு குறிப்பிட்ட செயலைச் செய்யக்கூடிய "stats.sh" என்ற ஸ்கிரிப்ட் உங்களுக்கு இருக்கலாம், அதாவது அதன் வார்த்தைகளை எண்ணும். நீங்கள் பல கோப்புகளில் அந்த ஸ்கிரிப்டை பயன்படுத்த விரும்பினால், கோப்புப் பெயரை ஒரு வாதமாக அனுப்புவது சிறந்ததாகும், இதன்மூலம் அனைத்து ஸ்கிரிப்ட்டுகளும் செயல்படுத்தப்பட வேண்டும். உதாரணமாக, கோப்பின் பெயரை செயலாக்க வேண்டும் என்றால் "songlist" எனில், பின்வரும் கட்டளையை உள்ளிட வேண்டும்:

sh stats.sh பாடலாசிரியர்

$ 1, $ 2, $ 3, முதலியவற்றைப் பயன்படுத்தி வாதங்கள் ஒரு ஸ்கிரிப்டில் உள்ளே அணுகப்படுகின்றன, அங்கு $ 1 முதல் வாதத்தை குறிக்கிறது, இரண்டாவது மதிப்புருவிற்கு $ 2, மற்றும் பல. இது பின்வரும் எடுத்துக்காட்டில் விளக்கப்பட்டுள்ளது:

FILE1 = $ 1 wc $ FILE1

வாசிப்புக்காக, முதல் மதிப்புரு ($ 1) மதிப்புக்கு ஒரு பெயரிடப்பட்ட பெயரைக் கொண்டு மாறி, பின்னர் இந்த மாறி ($ FILE1) என்ற வார்த்தையின் வார்த்தை பயன்பாட்டை ( wc ) என்று அழைக்கவும்.

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

FILE1 இல் "$ @" wc $ FILE1 செய்யப்படுகிறது

கட்டளை வரியிலிருந்து வாதங்கள் மூலம் இந்த ஸ்கிரிப்டை எவ்வாறு அழைக்க வேண்டும் என்பதற்கான ஒரு எடுத்துக்காட்டு:

sh stats.sh songlist1 songlist2 songlist3

ஒரு வாதத்தில் இடைவெளிகள் இருந்தால், அதை ஒற்றை மேற்கோள்களுடன் இணைக்க வேண்டும். உதாரணத்திற்கு:

ஷா ஸ்டாட்ஸ். ஷஷ் 'பாடல் பட்டியல் 1' 'பாடல் பட்டியல் 2' 'பாடல் பட்டியல் 3'

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

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

makereport -u jsmith -p குறிப்பேடுகள் -d 10-20-2011 -f pdf

பாஷ் இந்த செயல்பாட்டை "getopts" செயல்பாட்டில் செயல்படுத்துகிறது. மேலே எடுத்துக்காட்டுக்கு, பின்வருமாறு கீபோட்களைப் பயன்படுத்தலாம்:

இது "getopts" செயல்பாடு மற்றும் "optstring" என்று அழைக்கப்படுபவை "u: d: p: f:", வாதங்கள் மூலம் மீண்டும் இயங்குவதற்கான ஒரு சுழற்சி ஆகும். இடைவெளியின் மூலம், சுழற்சியைப் பயன்படுத்தி நடக்கும் விதம், வாதங்களை அனுப்ப பயன்படும் கொடிகளைக் கொண்டிருக்கும், மற்றும் மாறி "விருப்பம்" என்று அந்தக் கொடியினை வழங்கிய வாத மதிப்பு. வழக்கு அறிக்கை பின்னர் அனைத்து வாதங்கள் படிக்கப்பட்டு பின்னர் பயன்படுத்தப்படும் ஒரு உலகளாவிய மாறி மாறி "விருப்பத்தை" மதிப்பை ஒதுக்க.

ஒளியில் உள்ள காலனிகள் அதனுடன் தொடர்புடைய கொடிகளை மதிப்பீடு செய்ய வேண்டும். மேலே உள்ள எடுத்துக்காட்டில் அனைத்து பத்திகளும் ஒரு பெருங்குடல் பின்வருமாறு: "u: d: p: f:". இதன் பொருள், அனைத்து கொடிகளுக்கும் மதிப்பு தேவை. எடுத்துக்காட்டாக, "d" மற்றும் "f" கொடிகள் ஒரு மதிப்பைக் கொண்டிருக்கவில்லை எனில், "opt: df: f" என்று இருக்கும்.

உதாரணமாக, ": u: d: p: f:" என்பது ஒரு வித்தியாசமான அர்த்தம் உள்ளது. இது விழிப்புணர்வில் குறிப்பிடப்படாத கொடிகளைக் கையாள அனுமதிக்கிறது. அந்த வழக்கில் "விருப்பம்" மாறி மதிப்பு "??" மற்றும் "OPTARG" மதிப்பு எதிர்பாராத கொடியை அமைத்துள்ளது. தவறான பயனருக்குத் தெரிவிக்க சரியான பிழை செய்தி காட்ட உங்களை அனுமதிக்கிறது.

கொடியால் முன்னரே இல்லாத வாதங்கள் getopts மூலம் புறக்கணிக்கப்படுகின்றன. ஸ்கிரிப்டை அழைக்கப்படும் போது, ​​விருப்பத்தின்படி குறிப்பிடப்பட்ட கொடிகள் வழங்கப்படாவிட்டால், உங்கள் குறியீட்டில் இந்த வழக்கை சிறப்பாக கையாளாதபட்சத்தில் எதுவும் நடக்காது. கீட்ஸ் மூலம் கையாளப்படாத ஏதேனும் வாதங்கள் தொடர்ந்து $ 1, $ 2 மற்றும் பல மாறிகள் மூலம் கைப்பற்றப்படலாம்.