இன்று நாம் பாஷ் ஸ்கிரிப்ட்களைப் பற்றி பேசுவோம். இந்த - கட்டளை வரி ஸ்கிரிப்டுகள், பாஷ் ஷெல்லுக்காக எழுதப்பட்டது. zsh, tcsh, ksh போன்ற பிற ஷெல்கள் உள்ளன, ஆனால் நாங்கள் பாஷில் கவனம் செலுத்துவோம். இந்த பொருள் அனைவருக்கும் நோக்கம் கொண்டது, ஒரே நிபந்தனை வேலை செய்யும் திறன் கட்டளை வரி வரைந்தனர்.
கட்டளை வரி ஸ்கிரிப்ட்கள் அதே கட்டளைகளின் தொகுப்பாகும், அவை விசைப்பலகையில் இருந்து உள்ளிடப்படலாம், கோப்புகளாக சேகரிக்கப்பட்டு சில பொதுவான நோக்கங்களால் ஒன்றிணைக்கப்படுகின்றன. இந்த வழக்கில், குழுக்களின் பணியின் முடிவுகள் சுயாதீன மதிப்புடையதாக இருக்கலாம் அல்லது பிற குழுக்களுக்கான உள்ளீட்டுத் தரவாக இருக்கலாம். ஸ்கிரிப்ட்கள் அடிக்கடி செய்யப்படும் செயல்களை தானியங்குபடுத்தும் சக்திவாய்ந்த வழியாகும்.
எனவே, நாங்கள் கட்டளை வரியைப் பற்றி பேசினால், அரைப்புள்ளியால் பிரிக்கப்பட்ட பல கட்டளைகளை உள்ளிடுவதன் மூலம் ஒரே நேரத்தில் பல கட்டளைகளை இயக்க அனுமதிக்கிறது:
pwd ; whoami
உண்மையில், இதை உங்கள் டெர்மினலில் முயற்சித்தீர்கள் என்றால், இரண்டு கட்டளைகளை உள்ளடக்கிய உங்கள் முதல் பாஷ் ஸ்கிரிப்ட் ஏற்கனவே எழுதப்பட்டுவிட்டது. இது இப்படி வேலை செய்கிறது. முதலில் அணி pwd தற்போதைய வேலை அடைவு பற்றிய தகவலைக் காட்டுகிறது, பின்னர் கட்டளை whoamiநீங்கள் உள்நுழைந்துள்ள பயனரைப் பற்றிய தகவலைக் காட்டுகிறது.
இந்த அணுகுமுறையைப் பயன்படுத்தி, ஒரு வரியில் நீங்கள் விரும்பும் பல கட்டளைகளை இணைக்கலாம், ஒரே வரம்பு நிரலுக்கு அனுப்பக்கூடிய அதிகபட்ச வாதங்களின் எண்ணிக்கை மட்டுமே. பின்வரும் கட்டளையைப் பயன்படுத்தி இந்த வரம்பை நீங்கள் வரையறுக்கலாம்:
getconf ARG_MAX
கட்டளை வரி ஒரு சிறந்த கருவி, ஆனால் உங்களுக்கு தேவையான ஒவ்வொரு முறையும் கட்டளைகளை உள்ளிட வேண்டும். ஒரு கோப்பில் கட்டளைகளின் தொகுப்பை எழுதி, அவற்றை இயக்க அந்த கோப்பை வெறுமனே அழைத்தால் என்ன செய்வது? உண்மையில், நாம் பேசும் கோப்பு கட்டளை வரி ஸ்கிரிப்ட் என்று அழைக்கப்படுகிறது.
பாஷ் ஸ்கிரிப்ட்கள் எப்படி வேலை செய்கின்றன
கட்டளையைப் பயன்படுத்தி வெற்று கோப்பை உருவாக்கவும் touch. அதன் முதல் வரியில் நாம் எந்த ஷெல் பயன்படுத்தப் போகிறோம் என்பதைக் குறிக்க வேண்டும். நாங்கள் ஆர்வமாக உள்ளோம் bash, எனவே கோப்பின் முதல் வரி இப்படி இருக்கும்:
#!/bin/bash
இந்தக் கோப்பில் உள்ள மற்ற வரிகள் ஷெல் செயலாக்காத கருத்துகளைக் குறிக்க ஹாஷ் குறியீட்டைப் பயன்படுத்துகின்றன. இருப்பினும், முதல் வரி ஒரு சிறப்பு வழக்கு, ஒரு ஹாஷ் மற்றும் ஒரு ஆச்சரியக்குறி உள்ளது (இந்த வரிசை அழைக்கப்படுகிறது ஷெபாங்) மற்றும் பாதை bash, ஸ்கிரிப்ட் பிரத்யேகமாக உருவாக்கப்பட்ட அமைப்புக்கு குறிப்பிடவும் bash.
ஷெல் கட்டளைகள் வரி ஊட்டத்தால் பிரிக்கப்படுகின்றன, கருத்துகள் ஹாஷ் அடையாளத்தால் பிரிக்கப்படுகின்றன. இது போல் தெரிகிறது:
#!/bin/bash
# This is a comment
pwd
whoami
இங்கே, கட்டளை வரியைப் போலவே, அரைப்புள்ளிகளால் பிரிக்கப்பட்ட ஒரு வரியில் கட்டளைகளை எழுதலாம். இருப்பினும், நீங்கள் வெவ்வேறு வரிகளில் கட்டளைகளை எழுதினால், கோப்பைப் படிக்க எளிதாக இருக்கும். எந்தவொரு சந்தர்ப்பத்திலும், ஷெல் அவற்றை செயலாக்கும்.
ஸ்கிரிப்ட் கோப்பு அனுமதிகளை அமைத்தல்
கோப்பை ஒரு பெயரைக் கொடுத்து சேமிக்கவும் myscript, மற்றும் பாஷ் ஸ்கிரிப்டை உருவாக்கும் பணி கிட்டத்தட்ட முடிந்துவிட்டது. இப்போது எஞ்சியிருப்பது இந்த கோப்பை இயக்கக்கூடியதாக மாற்றுவது மட்டுமே, இல்லையெனில், நீங்கள் அதை இயக்க முயற்சித்தால், நீங்கள் ஒரு பிழையை சந்திக்க நேரிடும். Permission denied.
தவறாக உள்ளமைக்கப்பட்ட அனுமதிகளுடன் ஸ்கிரிப்ட் கோப்பை இயக்க முயற்சிக்கிறது
கோப்பை இயக்கக்கூடியதாக மாற்றுவோம்:
chmod +x ./myscript
இப்போது அதை செயல்படுத்த முயற்சிப்போம்:
./myscript
அனுமதிகளை அமைத்த பிறகு, எல்லாம் சரியாக வேலை செய்கிறது.
பாஷ் ஸ்கிரிப்ட் வெற்றிகரமாக இயங்குகிறது
செய்தி வெளியீடு
லினக்ஸ் கன்சோலுக்கு உரையை வெளியிட, கட்டளையைப் பயன்படுத்தவும் echo. இந்த உண்மையைப் பற்றிய அறிவைப் பயன்படுத்தி, எங்கள் ஸ்கிரிப்டைத் திருத்துவோம், அதில் ஏற்கனவே உள்ள கட்டளைகளால் வெளியிடப்பட்ட தரவுகளுக்கு விளக்கங்களைச் சேர்ப்போம்:
#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami
புதுப்பிக்கப்பட்ட ஸ்கிரிப்டை இயக்கிய பிறகு இதுதான் நடக்கும்.
ஸ்கிரிப்டில் இருந்து செய்திகளை வெளியிடுதல்
இப்போது கட்டளையைப் பயன்படுத்தி விளக்கக் குறிப்புகளைக் காட்டலாம் echo. லினக்ஸ் கருவிகளைப் பயன்படுத்தி ஒரு கோப்பை எவ்வாறு திருத்துவது என்று உங்களுக்குத் தெரியாவிட்டால், அல்லது நீங்கள் இதற்கு முன் கட்டளையைப் பார்க்கவில்லை என்றால் echo, பாருங்கள் இந்த பொருள்.
மாறிகளைப் பயன்படுத்துதல்
பிற கட்டளைகளின் பயன்பாட்டிற்காக கட்டளைகளின் முடிவுகள் போன்ற ஸ்கிரிப்ட் கோப்பில் தகவல்களைச் சேமிக்க மாறிகள் உங்களை அனுமதிக்கின்றன.
தனிப்பட்ட கட்டளைகளை அவற்றின் முடிவுகளைச் சேமிக்காமல் செயல்படுத்துவதில் எந்தத் தவறும் இல்லை, ஆனால் இந்த அணுகுமுறை அதன் திறன்களில் மிகவும் குறைவாகவே உள்ளது.
பாஷ் ஸ்கிரிப்ட்களில் இரண்டு வகையான மாறிகள் பயன்படுத்தப்படலாம்:
சுற்றுச்சூழல் மாறிகள்
பயனர் மாறிகள்
சுற்றுச்சூழல் மாறிகள்
சில நேரங்களில் ஷெல் கட்டளைகள் சில கணினி தரவுகளுடன் வேலை செய்ய வேண்டும். தற்போதைய பயனரின் முகப்பு கோப்பகத்தை எவ்வாறு காண்பிப்பது என்பதற்கான எடுத்துக்காட்டு இங்கே:
#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"
கணினி மாறியைப் பயன்படுத்தலாம் என்பதை நினைவில் கொள்க $HOME இரட்டை மேற்கோள்களில், இது கணினியை அங்கீகரிப்பதைத் தடுக்காது. மேலே உள்ள காட்சியை இயக்கினால் இதுவே கிடைக்கும்.
ஸ்கிரிப்ட்டில் சூழல் மாறியைப் பயன்படுத்துதல்
நீங்கள் ஒரு டாலர் அடையாளத்தை திரையில் காட்ட வேண்டும் என்றால் என்ன செய்வது? இதை முயற்சிப்போம்:
echo "I have $1 in my pocket"
மேற்கோள் காட்டப்பட்ட சரத்தில் ஒரு டாலர் அடையாளத்தை கணினி கண்டறிந்து, நாங்கள் ஒரு மாறியைக் குறிப்பிட்டுள்ளோம் என்று கருதும். ஸ்கிரிப்ட் வரையறுக்கப்படாத மாறியின் மதிப்பைக் காட்ட முயற்சிக்கும் $1. இது நமக்கு தேவை இல்லை. என்ன செய்ய?
இது போன்ற சூழ்நிலையில், டாலர் குறிக்கு முன் எஸ்கேப் கேரக்டரான பின்சாய்வுக்கு உதவும்:
echo "I have $1 in my pocket"
ஸ்கிரிப்ட் இப்போது எதிர்பார்த்ததை சரியாக வெளியிடும்.
டாலர் அடையாளத்தை அச்சிட தப்பிக்கும் வரிசையைப் பயன்படுத்துதல்
பயனர் மாறிகள்
சூழல் மாறிகள் தவிர, ஸ்கிரிப்ட்டில் உங்கள் சொந்த மாறிகளை வரையறுக்கவும் பயன்படுத்தவும் பாஷ் ஸ்கிரிப்டுகள் உங்களை அனுமதிக்கின்றன. ஸ்கிரிப்ட் செயல்படுத்தப்படும் வரை இத்தகைய மாறிகள் ஒரு மதிப்பை வைத்திருக்கும்.
கணினி மாறிகளைப் போலவே, டாலர் அடையாளத்தைப் பயன்படுத்தி பயனர் மாறிகளையும் அணுகலாம்:
TNW-CUS-FMP - எங்கள் சேவைகளில் 10% தள்ளுபடிக்கான விளம்பரக் குறியீடு, 7 நாட்களுக்குள் செயல்படுத்தப்படும்
#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"
அப்படிப்பட்ட ஸ்கிரிப்டை இயக்கிய பிறகு இதுதான் நடக்கும்.
ஸ்கிரிப்ட்டில் தனிப்பயன் மாறிகள்
கட்டளை மாற்று
பாஷ் ஸ்கிரிப்ட்களின் மிகவும் பயனுள்ள அம்சங்களில் ஒன்று, கட்டளை வெளியீட்டிலிருந்து தகவலைப் பிரித்தெடுத்து, அதை மாறிகளுக்கு ஒதுக்கும் திறன் ஆகும், இது ஸ்கிரிப்ட் கோப்பில் எங்கு வேண்டுமானாலும் இந்தத் தகவலைப் பயன்படுத்த அனுமதிக்கிறது.
இதற்கு இரண்டு வழிகள் உள்ளன.
பின்னாடி "`" ஐப் பயன்படுத்துதல்
வடிவமைப்பால் $()
முதல் அணுகுமுறையைப் பயன்படுத்தும் போது, பின்டிக்குக்குப் பதிலாக ஒரு மேற்கோள் குறியைச் சேர்க்காமல் கவனமாக இருங்கள். கட்டளை இரண்டு போன்ற ஐகான்களில் இணைக்கப்பட வேண்டும்:
mydir=`pwd`
இரண்டாவது அணுகுமுறையில், அதே விஷயம் இப்படி எழுதப்பட்டுள்ளது:
mydir=$(pwd)
மற்றும் ஸ்கிரிப்ட் இப்படி இருக்க முடியும்:
#!/bin/bash
mydir=$(pwd)
echo $mydir
அதன் செயல்பாட்டின் போது, கட்டளையின் வெளியீடு pwdஒரு மாறியில் சேமிக்கப்படும் mydir, இதன் உள்ளடக்கங்கள், கட்டளையைப் பயன்படுத்தி echo, கன்சோலுக்குச் செல்லும்.
ஒரு கட்டளையின் முடிவுகளை மாறியில் சேமிக்கும் ஸ்கிரிப்ட்
கணித செயல்பாடுகள்
ஸ்கிரிப்ட் கோப்பில் கணித செயல்பாடுகளைச் செய்ய, நீங்கள் ஒரு கட்டமைப்பைப் பயன்படுத்தலாம் $((a+b)):
சில சூழ்நிலைகளில், நீங்கள் கட்டளை செயல்படுத்தலின் ஓட்டத்தை கட்டுப்படுத்த வேண்டும். எடுத்துக்காட்டாக, ஒரு குறிப்பிட்ட மதிப்பு ஐந்தை விட அதிகமாக இருந்தால், நீங்கள் ஒரு செயலைச் செய்ய வேண்டும், இல்லையெனில் மற்றொன்று. இது பல சூழ்நிலைகளில் பொருந்தும், இங்கே கட்டுப்பாட்டு அமைப்பு நமக்கு உதவும் if-then. அதன் எளிய வடிவத்தில் இது போல் தெரிகிறது:
if команда
then
команды
fi
இங்கே ஒரு வேலை உதாரணம்:
#!/bin/bash
if pwd
then
echo "It works"
fi
இந்த வழக்கில், கட்டளை செயல்படுத்தப்பட்டால் pwdவெற்றிகரமாக முடிவடையும், "இது வேலை செய்கிறது" என்ற உரை கன்சோலில் காட்டப்படும்.
நம்மிடம் உள்ள அறிவைப் பயன்படுத்தி சிக்கலான ஸ்கிரிப்டை எழுதுவோம். ஒரு குறிப்பிட்ட பயனரைக் கண்டுபிடிக்க வேண்டும் என்று வைத்துக்கொள்வோம் /etc/passwd, நீங்கள் அதைக் கண்டுபிடிக்க முடிந்தால், அது இருப்பதைப் புகாரளிக்கவும்.
#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi
இந்த ஸ்கிரிப்டை இயக்கிய பிறகு இதுதான் நடக்கும்.
பயனர் தேடல்
இங்கே நாம் கட்டளையைப் பயன்படுத்தினோம் grepஒரு கோப்பில் ஒரு பயனரைத் தேட /etc/passwd. அணி என்றால் grepஉங்களுக்கு அறிமுகமில்லாத, அதன் விளக்கத்தைக் காணலாம் இங்கே.
இந்த எடுத்துக்காட்டில், பயனர் கண்டுபிடிக்கப்பட்டால், ஸ்கிரிப்ட் தொடர்புடைய செய்தியைக் காண்பிக்கும். பயனரைக் கண்டுபிடிக்க முடியவில்லை என்றால் என்ன செய்வது? இந்த வழக்கில், ஸ்கிரிப்ட் எங்களிடம் எதையும் சொல்லாமல் வெறுமனே செயல்படுத்தும். அவர் இதைப் பற்றியும் எங்களிடம் கூற வேண்டும் என்று நாங்கள் விரும்புகிறோம், எனவே குறியீட்டை மேம்படுத்துவோம்.
என்றால்-பிறகு-வேறு கட்டுப்பாட்டு கட்டுமானம்
வெற்றிகரமான தேடல் மற்றும் தோல்வியின் முடிவுகள் இரண்டையும் நிரல் தெரிவிக்க, நாங்கள் கட்டுமானத்தைப் பயன்படுத்துவோம் if-then-else. இது எவ்வாறு செயல்படுகிறது என்பது இங்கே:
if команда
then
команды
else
команды
fi
முதல் கட்டளை பூஜ்ஜியத்தை வழங்கினால், அது வெற்றிகரமாக செயல்படுத்தப்பட்டது என்று அர்த்தம், நிபந்தனை உண்மையாக இருக்கும் மற்றும் கிளையுடன் செயல்படுத்தல் தொடராது else. இல்லையெனில், பூஜ்ஜியத்தைத் தவிர வேறு ஏதாவது திருப்பி அனுப்பப்பட்டால், அது தோல்வியைக் குறிக்கும் அல்லது தவறான முடிவைக் குறிக்கும் else.
பின்வரும் ஸ்கிரிப்டை எழுதுவோம்:
#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi
அவரது மரணதண்டனை சாக்கடையில் இறங்கியது else.
if-then-else கன்ஸ்ட்ரக்டுடன் ஸ்கிரிப்டை இயக்குதல்
சரி, இன்னும் சிக்கலான நிலைமைகளைப் பற்றி நம்மை நாமே கேட்டுக்கொள்ளலாம். நீங்கள் ஒரு நிபந்தனையை அல்ல, பலவற்றைச் சரிபார்க்க வேண்டும் என்றால் என்ன செய்வது? எடுத்துக்காட்டாக, விரும்பிய பயனர் கண்டுபிடிக்கப்பட்டால், ஒரு செய்தி காட்டப்பட வேண்டும், வேறு சில நிபந்தனைகள் பூர்த்தி செய்யப்பட்டால், மற்றொரு செய்தி காட்டப்பட வேண்டும், மற்றும் பல. அத்தகைய சூழ்நிலையில், உள்ளமை நிலைமைகள் நமக்கு உதவும். இது போல் தெரிகிறது:
if команда1
then
команды
elif команда2
then
команды
fi
முதல் கட்டளை பூஜ்ஜியத்தை வழங்கினால், அதன் வெற்றிகரமான செயல்பாட்டைக் குறிக்கிறது, முதல் தொகுதியில் உள்ள கட்டளைகள் செயல்படுத்தப்படும் then, இல்லையெனில், முதல் நிபந்தனை தவறாக இருந்தால் மற்றும் இரண்டாவது கட்டளை பூஜ்ஜியத்தை வழங்கினால், இரண்டாவது தொகுதி குறியீடு செயல்படுத்தப்படும்.
#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi
அத்தகைய ஸ்கிரிப்ட்டில், நீங்கள் கட்டளையைப் பயன்படுத்தி புதிய பயனரை உருவாக்கலாம் useradd, தேடல் முடிவுகளைத் தரவில்லை என்றால் அல்லது வேறு ஏதாவது பயனுள்ளதாக இருந்தால்.
எண்களின் ஒப்பீடு
ஸ்கிரிப்ட்களில் நீங்கள் எண் மதிப்புகளை ஒப்பிடலாம். தொடர்புடைய கட்டளைகளின் பட்டியல் கீழே உள்ளது.
n1 -eq n2உண்மை என்றால் திரும்பும் n1 உள்ளது n2. n1 -ge n2 உண்மை என்றால் திரும்பும் n1அதிகமாகவோ அல்லது சமமாகவோ n2. n1 -gt n2உண்மை என்றால் திரும்பும் n1 விட n2. n1 -le n2உண்மை என்றால் திரும்பும் n1குறைவாக அல்லது சமமாக n2. n1 -lt n2n1 ஐ விடக் குறைவாக இருந்தால் உண்மை என்பதை வழங்கும் n2. n1 -ne n2உண்மை என்றால் திரும்பும் n1சமமாக இல்லை n2.
உதாரணமாக, ஒப்பீட்டு ஆபரேட்டர்களில் ஒன்றை முயற்சிப்போம். வெளிப்பாடு சதுர அடைப்புக்குறிக்குள் இணைக்கப்பட்டுள்ளது என்பதை நினைவில் கொள்க.
#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi
இதைத்தான் இந்த கட்டளை வெளியிடும்.
ஸ்கிரிப்ட்களில் உள்ள எண்களின் ஒப்பீடு
மாறி மதிப்பு val15 ஐ விட அதிகமாக, கிளை செயல்படுத்தப்படுகிறது thenஒப்பீட்டு ஆபரேட்டர் மற்றும் தொடர்புடைய செய்தி கன்சோலில் காட்டப்படும்.
சரம் ஒப்பீடு
ஸ்கிரிப்ட்கள் சர மதிப்புகளையும் ஒப்பிடலாம். ஒப்பீட்டு ஆபரேட்டர்கள் மிகவும் எளிமையானவை, ஆனால் சரம் ஒப்பீட்டு செயல்பாடுகள் சில அம்சங்களைக் கொண்டுள்ளன, அதை நாங்கள் கீழே தொடுவோம். ஆபரேட்டர்களின் பட்டியல் இங்கே.
str1 = str2 சமத்துவத்திற்கான சரங்களைச் சோதிக்கிறது, சரங்கள் ஒரே மாதிரியாக இருந்தால் உண்மையாகத் திரும்பும்.
str1 != str2சரங்கள் ஒரே மாதிரியாக இல்லாவிட்டால் உண்மை என்று திரும்பும். str1 < str2உண்மை என்றால் திரும்பும் str1விட குறைவாக str2. str1 > str2 உண்மை என்றால் திரும்பும் str1விட str2. -n str1 நீளம் என்றால் உண்மை எனத் தரும் str1பூஜ்ஜியத்திற்கு மேல். -z str1நீளம் என்றால் உண்மை எனத் தரும் str1பூஜ்ஜியத்திற்கு சமம்.
ஸ்கிரிப்ட்டில் உள்ள சரங்களை ஒப்பிடுவதற்கான எடுத்துக்காட்டு இங்கே:
#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user is the current logged in user"
fi
ஸ்கிரிப்டை இயக்குவதன் விளைவாக, பின்வருவனவற்றைப் பெறுகிறோம்.
ஸ்கிரிப்ட்களில் சரங்களை ஒப்பிடுதல்
சரம் ஒப்பீட்டின் ஒரு அம்சம் இங்கே குறிப்பிடத் தக்கது. அதாவது, ">" மற்றும் "<" ஆபரேட்டர்கள் பின்சாய்வு மூலம் தப்பிக்க வேண்டும், இல்லையெனில் ஸ்கிரிப்ட் சரியாக வேலை செய்யாது, இருப்பினும் பிழை செய்திகள் தோன்றாது. ஸ்கிரிப்ட் ">" குறியை வெளியீட்டு திசைதிருப்பல் கட்டளையாக விளக்குகிறது.
குறியீட்டில் இந்த ஆபரேட்டர்களுடன் பணிபுரிவது எப்படி இருக்கும் என்பது இங்கே:
#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
ஸ்கிரிப்ட்டின் முடிவுகள் இதோ.
சரம் ஒப்பீடு, எச்சரிக்கை கொடுக்கப்பட்டது
ஸ்கிரிப்ட் செயல்படுத்தப்பட்டாலும், ஒரு எச்சரிக்கையை வெளியிடுகிறது என்பதை நினைவில் கொள்ளவும்:
./myscript: line 5: [: too many arguments
இந்த எச்சரிக்கையிலிருந்து விடுபட, நாங்கள் முடிக்கிறோம் $val2 இரட்டை மேற்கோள்களில்:
#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
இப்போது எல்லாம் சரியாக வேலை செய்கிறது.
சரம் ஒப்பீடு
">" மற்றும் "<" ஆபரேட்டர்களின் மற்றொரு அம்சம், அவை பெரிய எழுத்து மற்றும் சிறிய எழுத்துகளுடன் எவ்வாறு செயல்படுகின்றன என்பதுதான். இந்த அம்சத்தைப் புரிந்து கொள்ள, பின்வரும் உள்ளடக்கத்துடன் உரைக் கோப்பைத் தயாரிப்போம்:
Likegeeks
likegeeks
பெயர் வைத்து காப்பாற்றுவோம் myfile, பின் பின்வரும் கட்டளையை முனையத்தில் இயக்கவும்:
sort myfile
இது கோப்பிலிருந்து வரிகளை இப்படி வரிசைப்படுத்தும்:
likegeeks
Likegeeks
அணி sort, இயல்பாக, சரங்களை ஏறுவரிசையில் வரிசைப்படுத்துகிறது, அதாவது, எங்கள் எடுத்துக்காட்டில் உள்ள சிறிய எழுத்து பெரிய எழுத்தை விட சிறியது. இப்போது அதே சரங்களை ஒப்பிடும் ஒரு ஸ்கிரிப்டை தயார் செய்வோம்:
#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
நீங்கள் அதை இயக்கினால், எல்லாம் நேர்மாறானது என்று மாறிவிடும் - சிறிய எழுத்து இப்போது பெரிய எழுத்தை விட பெரியது.
ஸ்கிரிப்ட் கோப்பில் வரிசைப்படுத்தும் கட்டளை மற்றும் சரங்களை ஒப்பிடுதல்
ஒப்பீட்டு கட்டளைகளில், பெரிய எழுத்துக்கள் சிறிய எழுத்துக்களை விட சிறியதாக இருக்கும். எழுத்துகளின் ASCII குறியீடுகளை ஒப்பிடுவதன் மூலம் இங்கே சரம் ஒப்பீடு செய்யப்படுகிறது, வரிசை வரிசை எழுத்து குறியீடுகளைப் பொறுத்தது.
அணி sort, இதையொட்டி, கணினி மொழி அமைப்புகளில் குறிப்பிடப்பட்டுள்ள வரிசை வரிசையைப் பயன்படுத்துகிறது.
கோப்பு சரிபார்ப்பு
பாஷ் ஸ்கிரிப்ட்களில் பின்வரும் கட்டளைகள் பெரும்பாலும் பயன்படுத்தப்படுகின்றன. கோப்புகள் தொடர்பான பல்வேறு நிபந்தனைகளைச் சரிபார்க்க அவை உங்களை அனுமதிக்கின்றன. இந்த கட்டளைகளின் பட்டியல் இங்கே.
-d fileகோப்பு உள்ளதா மற்றும் கோப்பகமா என்பதைச் சரிபார்க்கிறது. -e fileகோப்பு இருக்கிறதா என்று சரிபார்க்கிறது. -f file ஒரு கோப்பு இருக்கிறதா மற்றும் ஒரு கோப்பாக உள்ளதா என்பதைச் சரிபார்க்கிறது. -r fileகோப்பு உள்ளதா மற்றும் படிக்கக்கூடியதா என்பதைச் சரிபார்க்கிறது. -s file Пகோப்பு உள்ளதா மற்றும் காலியாக இல்லையா என்பதைச் சரிபார்க்கிறது. -w fileகோப்பு உள்ளதா மற்றும் எழுதக்கூடியதா என்பதைச் சரிபார்க்கிறது. -x fileகோப்பு உள்ளதா மற்றும் இயங்கக்கூடியதா என்பதைச் சரிபார்க்கிறது. file1 -nt file2 இது புதியதா என சரிபார்க்கிறது file1விட file2. file1 -ot file2பழையதா என சரிபார்க்கிறது file1விட file2. -O file கோப்பு உள்ளதா மற்றும் தற்போதைய பயனருக்குச் சொந்தமானதா என்பதைச் சரிபார்க்கிறது. -G fileகோப்பு உள்ளதா மற்றும் அதன் குழு ஐடி தற்போதைய பயனரின் குழு ஐடியுடன் பொருந்துகிறதா என்பதைச் சரிபார்க்கிறது.
இந்த கட்டளைகள், இன்று விவாதிக்கப்படும் பல, நினைவில் கொள்வது எளிது. அவர்களின் பெயர்கள், பல்வேறு சொற்களின் சுருக்கமாக இருப்பதால், அவர்கள் செய்யும் சரிபார்ப்புகளை நேரடியாகக் குறிக்கின்றன.
நடைமுறையில் உள்ள கட்டளைகளில் ஒன்றை முயற்சிப்போம்:
#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi
இந்த ஸ்கிரிப்ட், ஏற்கனவே உள்ள கோப்பகத்திற்கு, அதன் உள்ளடக்கங்களைக் காண்பிக்கும்.
ஒரு கோப்பகத்தின் உள்ளடக்கங்களை பட்டியலிடுதல்
மீதமுள்ள கட்டளைகளை நீங்களே பரிசோதனை செய்யலாம் என்று நாங்கள் நம்புகிறோம்; அவை அனைத்தும் ஒரே கொள்கையின்படி பயன்படுத்தப்படுகின்றன.
முடிவுகளை
இன்று நாம் பாஷ் ஸ்கிரிப்ட்களை எழுதத் தொடங்குவது மற்றும் சில அடிப்படை விஷயங்களைப் பற்றி பேசினோம். உண்மையில், பாஷ் நிரலாக்கத்தின் தலைப்பு மிகப்பெரியது. இந்த கட்டுரை 11 பொருட்கள் கொண்ட பெரிய தொடரின் முதல் பகுதியின் மொழிபெயர்ப்பாகும். நீங்கள் இப்போது தொடர விரும்பினால், இந்தப் பொருட்களின் அசல்களின் பட்டியல் இங்கே உள்ளது. வசதிக்காக, நீங்கள் இப்போது படித்த மொழிபெயர்ப்பு இங்கே சேர்க்கப்பட்டுள்ளது.
பாஷ் ஸ்கிரிப்ட் ஸ்டெப் பை ஸ்டெப் — இங்கே நாம் பாஷ் ஸ்கிரிப்ட்களை எவ்வாறு உருவாக்குவது என்பது பற்றி பேசுகிறோம், மாறிகளின் பயன்பாடு கருதப்படுகிறது, நிபந்தனை கட்டமைப்புகள், கணக்கீடுகள், எண்களின் ஒப்பீடுகள், சரங்கள் மற்றும் கோப்புகளைப் பற்றிய தகவல்களைக் கண்டறிதல் ஆகியவை விவரிக்கப்பட்டுள்ளன.
பாஷ் ஸ்கிரிப்டிங் பகுதி 3, அளவுருக்கள் & விருப்பங்கள் — இந்த பொருள் கட்டளை வரி அளவுருக்கள் மற்றும் ஸ்கிரிப்ட்டுகளுக்கு அனுப்பப்படும் விசைகளுக்கு அர்ப்பணிக்கப்பட்டுள்ளது, பயனர் உள்ளிடும் மற்றும் கோப்புகளிலிருந்து படிக்கக்கூடிய தரவுகளுடன் வேலை செய்கிறது.
பாஷ் ஸ்கிரிப்டிங் பகுதி 4, உள்ளீடு & வெளியீடு - இங்கே நாம் கோப்பு விளக்கங்கள் மற்றும் அவற்றுடன் பணிபுரிவது, உள்ளீடு, வெளியீடு, பிழை ஸ்ட்ரீம்கள் மற்றும் வெளியீட்டு திசைதிருப்பல் பற்றி பேசுகிறோம்.
பாஷ் ஸ்கிரிப்டிங் பகுதி 5, சிகல்கள் & வேலைகள் — இந்த பொருள் லினக்ஸ் சிக்னல்கள், ஸ்கிரிப்ட்களில் அவற்றின் செயலாக்கம் மற்றும் ஒரு அட்டவணையில் ஸ்கிரிப்ட்களை தொடங்குவதற்கு அர்ப்பணிக்கப்பட்டுள்ளது.
பாஷ் ஸ்கிரிப்டிங் பகுதி 6, செயல்பாடுகள் — இங்கே நீங்கள் ஸ்கிரிப்ட்களில் செயல்பாடுகளை உருவாக்குவது மற்றும் பயன்படுத்துவது மற்றும் நூலகங்களை உருவாக்குவது பற்றி அறிந்து கொள்ளலாம்.
பாஷ் ஸ்கிரிப்டிங் பகுதி 11, எதிர்பார்ப்பு கட்டளை — இந்த மெட்டீரியல் எக்ஸ்பெக்ட் டூலுக்கு அர்ப்பணிக்கப்பட்டுள்ளது, இதன் மூலம் ஊடாடும் பயன்பாடுகளுடனான தொடர்புகளை தானியக்கமாக்க முடியும். குறிப்பாக, எதிர்பார்ப்பு ஸ்கிரிப்டுகள் மற்றும் பாஷ் ஸ்கிரிப்ட்கள் மற்றும் பிற நிரல்களுடன் அவற்றின் தொடர்பு பற்றி பேசுகிறோம்.
இந்தக் கட்டுரைத் தொடரின் மதிப்புமிக்க அம்சங்களில் ஒன்று, எளிமையானது, எந்த நிலை பயனர்களுக்கும் ஏற்றது என்று தொடங்கி, படிப்படியாக மிகவும் தீவிரமான தலைப்புகளுக்கு இட்டுச் சென்று, லினக்ஸ் கட்டளை வரி ஸ்கிரிப்ட்களை உருவாக்குவதில் அனைவருக்கும் முன்னேற வாய்ப்பளிக்கிறது. .
அன்பான வாசகர்களே! பாஷ் புரோகிராமிங் குருக்களிடம், அவர்கள் எவ்வாறு தங்கள் தேர்ச்சியின் உச்சத்தை அடைந்தார்கள் என்பதைப் பற்றி பேசுமாறு கேட்டுக்கொள்கிறோம், அவர்களின் ரகசியங்களைப் பகிர்ந்து கொள்கிறோம், மேலும் அவர்களின் முதல் ஸ்கிரிப்டை எழுதியவர்களிடமிருந்து பதிவுகளைப் பெற ஆவலுடன் காத்திருக்கிறோம்.
பதிவு செய்த பயனர்கள் மட்டுமே கணக்கெடுப்பில் பங்கேற்க முடியும். உள்நுழையவும், தயவு செய்து.
மீதமுள்ள தொடர் கட்டுரைகளை நான் மொழிபெயர்க்க வேண்டுமா?
ஆமாம்!
இல்லை தேவையில்லை
1030 பயனர்கள் வாக்களித்தனர். 106 பயனர்கள் வாக்களிக்கவில்லை.