බ්ලොක් එකක් ලියන්නේ කෙසේද?

BASH "shell" සඳහා ලූපයක් භාවිතා කරන්නේ කෙසේද

BASH (Bourne Again Shell) යනු බොහෝ ලිනක්ස් සහ UNIX පාදක මෙහෙයුම් පද්ධති වල භාවිතා කරන කේත රචනයකි.

ඔබට BASH විධානයන් වෙනත් ආකාරයකින් පසු වින්ඩෝස් වින්ඩෝස් මඟින් ක්රියාත්මක කළ හැකිය, හෝ ඔබට shell කෙටුම්පතක් නිර්මාණය කිරීම සඳහා පෙළ ගොනුවකට විධාන එකතු කළ හැකිය.

Shell විධානාවලිය ලිවීම පිළිබඳ මහා දෙයක් වන්නේ ඔබ නැවත නැවතත් ඒවා පවත්වා ගත හැකි බවයි. උදාහරණයක් ලෙස පරිශීලකයෙකුට පද්ධතියට පද්ධතියක් එක් කිරීමට අවශ්ය නම්, ඔවුන්ගේ අවසරයන් සැකසීම සහ ආරම්භක පරිසරය කළමනාකරණය කිරීම අවශ්ය වේ. ඔබට කඩදාසි කැබැල්ලක ආඥාවන් ලිවීමට සහ නව පරිශීලකයින් එකතු කරන විට ඒවා ක්රියාත්මක කර හෝ ඔබට එක් ස්ක්රිප්ටයක් ලිවීමට සහ එම කේත රචනය තුලට පරාමිති යැවිය හැක.

BASH වැනි scripting භාෂා වෙනත් භාෂාවන් ලෙස සමාන ක්රමලේඛන නිර්මාණය කර ඇත. උදාහරණයක් ලෙස, ආයාත පරාමිතීන් යතුරු පුවරුවේ සිට ආදානය ලබා ගැනීමට සහ ඒවා විචල්යයන් ලෙස ගබඩා කළ හැකිය. එවිට ඔබට ආදාන පරාමිතීන්ගේ අගය මත පදනම්ව කිසියම් ක්රියාවක් කිසියම් ක්රියාවලියක් සිදු කිරීමට ඔබට හැකිය.

ඕනෑම ක්රමලේඛ සහ විධානාවලි භාෂාවක ප්රධාන අංගයක් වන්නේ එම කේතය නැවත නැවතත් නැවතත් ධාවනය කිරීමේ හැකියාවයි.

කේතය (මෙය හැඳින්වෙන්නේ ලූප නමින් හැඳින්වෙන) ගණනාවක් ඇත. මෙම මාර්ගෝපදේශය තුළ, "සඳහා" ලූපයක් ලියන ආකාරය පෙන්වනු ලැබේ.

Loop සඳහා අස්ථාපනය කරන ලද කේතයේ යම් කොටසක් නැවත නැවතත් සිදු කරයි. ඒවායින් ප්රයෝජනවත් වේ. විශේෂිත කොන්දේසියක් සපුරා ඇති තුරු විධාන මාලාවක් පවත්වා ගත හැකි වන පරිදි ඒවා නතර වනු ඇත.

මෙම මාර්ගෝපදේශය තුළ, BASH විධානාවලිය තුළ ලූපය භාවිතා කිරීමට ක්රම පහක් ඔබට පෙන්වනු ඇත.

ආරම්භ වීමට පෙර

ලූප් නිදසුන් සඳහා ආරම්භ කිරීමට පෙර, ඔබ ටර්මින කවුළුවක් විවෘත කර මෙම පියවර අනුගමනය කරන්න:

  1. Mkdir විධානාවලිය ඇතුළත් කරන්න ( මෙක්සිකෝ ගැන තවත් දැනගන්න )
  2. Cd රචනා ඇතුලත් කරන්න (මෙමගින් ඩිරෙක්ටරියේ සිට වින්යාසයන් දක්වා වෙනස් වේ)
  3. Nano examplen.sh (ඔබ n වැඩ කරන උදාහරණ වේ)
  4. පිටපත ඇතුළත් කරන්න
  5. CTRL + O සුරැකීමට සහ CTRL + X පිටවීම සඳහා ඔබන්න
  6. බාෂා විභාගය .shsh (නැවතත්, ඔබ සමඟ වැඩ කරන උදාහරණය ලෙස n )

ලැයිස්තුවක් හරහා ලුහුබඳින්නේ කෙසේද

#! / bin / bash
අංක 1 2 3 4 5 සඳහා
කරන්න
echo $ අංකය
කරලා
0 පිටවෙන්න

ලුප්ස් සඳහා "BASH" භාවිතා කිරීමේ ක්රමය වෙනත් බොහෝ ක්රමලේඛ සහ විධානාවලි භාෂාවන් සඳහා "ලූප" හසුරුවනු ලබයි. තිරපිටපත බිඳ දමමු ...

BASH සඳහා "සියලු ලුප්ත සඳහා", ලැයිස්තුවේ ඇති සෑම අයිතමයක් සඳහාම සිදු කළ යුතු හා සිදු කරන ප්රකාශ අතර එක් වරක් සිදු කරනු ලැබේ.

ඉහත උදාහරණයේදී, ලැයිස්තුවේ (එනම් 1 2 3 4 5) යන වචනයට පසුව ලැබෙන සෑම දෙයක්ම වේ.

මෙම ලූපය නිගමනය කරන සෑම අවස්ථාවකදීම, ලැයිස්තුවේ ඇති ඊළඟ අගය, "සඳහා" යනුවෙන් සඳහන් කර ඇති විචල්යය තුලට ඇතුළත් වේ. ඉහත ලුපයේ දී විචල්යය අංකය ලෙස හැඳින්වේ.

තිරය ​​වෙත තොරතුරු ප්රදර්ශනය කිරීම සඳහා echo ප්රකාශය භාවිතා වේ.

එමනිසා, මෙම උදාහරණ අංක 1 සිට 5 දක්වා ගෙන තිරය වෙත එකකට එකක් බැගින් ලබා දෙයි:

ආරම්භක හා අවසාන ලක්ෂ්ය අතරේ ලුහුබඳින්නේ කෙසේද

ඉහත උදාහරණයේ ඇති කරදරය නම් ඔබට විශාල ලැයිස්තුවක් සැකසීමට අවශ්ය නම් (1 සිට 500 දක්වා) නම්, පළමු කොටසේ සියලු අංකයන් ටයිප් කිරීමට වයස් ගත වනු ඇත.

මෙය ආරම්භක සහ අවසාන ලක්ෂ්යය සඳහන් කරන්නේ කෙසේද යන්න පෙන්වන දෙවැනි උදාහරණයට අප ගෙන එයි:

#! / bin / bash
අංකය {1..10}
කරන්න
echo "$ number"
කරලා
0 පිටවෙන්න

නීතිවල මූලික වශයෙන් එකම දේ. "ඇතුලත" යන වචනයට පසු අගයන් සෑදීමෙන් ලැයිස්තුවේ ඇති අතර ලැයිස්තුවේ එක් එක් අගය විචල්යය (එනම් අංකය) තැන්පත් වී ඇති අතර, ලුපය නැවතත් එක් කළ විට, කළ යුතු හා සිදු කරන ප්රකාශ අතර සිදු කරනු ලැබේ.

ලැයිස්තුවේ ඇති වෙනස ප්රධාන වශයෙන් වෙනස් වේ. ව්යුහාත්මක වරහන් {} මූලිකව පරාසයක් දක්වයි, සහ මෙම පරාසය, 1 සිට 10 දක්වා (තිත් ද්විත්වය පරාසයේ ආරම්භය සහ අවසානය වෙන් කිරීම) වෙන් කරයි.

එබැවින් මෙම උදාහරණය 1 සිට 10 දක්වා එක් එක් සංඛ්යාතයෙන් ගමන් කරන අතර තිරය වෙත තිරය වෙත පහත පරිදි දැක්වේ:

එකම ලූප් මේ ආකාරයට ලියනු ලැබුවේ පළමු උදාහරණයට සමාන syntax :

අංක 1 2 3 4 5 6 7 8 9 10

සංඛ්යා රේඛා මගහරින්න ආකාරය

පෙර උදාහරණයක් ආරම්භක හා අවසාන ලක්ෂ්යය අතර ලූපයක් පෙන්වන ආකාරය පෙන්වන අතර, දැන් අපි පරාසයේ සංඛ්යා මඟ හැරිය යුතු ආකාරය දෙස බලමු.

ඔබ 0 සිට 100 දක්වා ලුප් කිරීමට අවශ්ය නමුත් සෑම දසවන අංකය පෙන්විය යුතුයැයි සිතන්න. පහත දැක්වෙන කේත රචනය පෙන්නුම් කරන්නේ කෙසේ ද?

#! / bin / bash
{0..100..10} අංකය සඳහා
කරන්න
echo "$ number"
කරලා
0 පිටවෙන්න

නීතිවල මූලික වශයෙන් එකම දේ. ලැයිස්තුවක්, විචල්යයක් සහ සිදු කිරීම සහ සිදු කිරීම අතර සිදු කළ යුතු ප්රකාශ සමූහයකි. මෙම ලැයිස්තුවේ මෙම ලැයිස්තුව දිස්වේ: {0..100..10}.

පළමු අංකය 0 වන අතර අවසන් සංඛ්යාව 100 කි. තෙවැනි අංකය (10) එය ලැයිස්තුව මඟහරවා ගත හැක.

එබැවින්, ඉහත උදාහරණ පහත දැක්වෙන නිමැවුම පෙන්වයි:

වඩාත් සාම්ප්රදායික චක්රය සඳහා සොයනු

අනෙකුත් ක්රමලේඛන භාෂාවන්ට සැසඳීමේදී ලුප්ස් සඳහා ලිවීමේ BASH ක්රමය ඉතාම අමුතුයි.

කෙසේ වෙතත්, C භාෂාවේ ක්රමලේඛන භාෂාව වෙත සමාන ආකාරයේ ලූපයක් ලිවීමට ඔබට හැකිය:

#! / bin / bash
((අංක = 1, අංකය <100, අංකය ++))
{
(($ සංඛ්යාව% 5 == 0))
එවිට
echo "$ සංඛ්යාව වෙන්විය හැකි වේ 5"
ෆයි
}}
0 පිටවෙන්න

ලූපය විචල්ය අංකය 1 (අංක = 1 ) සිටුවීමෙන් ආරම්භ වේ. සංඛ්යාතයේ අගය 100 ට අඩු සංඛ්යාවක් ( සංඛ්යාව <100 ) වන අතර, ලුපය පුනරාවර්තව පවතී. එක් එක් පුනරාවර්තනයෙන් පසුව 1 ට එකතු කිරීම මඟින් අංක ගණන වෙනස් වේ.

කැටයම් වරහන් අතර සෑම දෙයක්ම ලූපයේ එක් එක් පුනරාවර්තනය මගින් සිදු කරනු ලැබේ.

බ්රාස්ට් අතර බිටු අංකයේ අගය පරික්ෂා කරයි, එය 5 කින් බෙදන්න, ඉතිරි කොටස සංසන්දනය කරනු ලැබේ. ඉතිරි කොටස 0 නම් නම් අංකය 5 මගින් පැහැදිළි වන අතර ඉන්පසු තිරය මත දිස් වේ.

උදාහරණයක් වශයෙන්:

සංඛ්යාංකයේ පියවර ප්රමාණය වෙනස් කිරීමට ඔබට අවශ්ය නම් සංඛ්යාංක අංකය + අංකය + 2 , අංකය = අංකය + 5 , හෝ අංකය = අංකය + 10 වැනි අංකය සඳහා සංශෝධනය කළ හැකිය.

මෙය අංක + = 2 හෝ අංකය + = 5 දක්වා තවදුරටත් අඩු කළ හැකිය.

ප්රායෝගික උදාහරණයක්

ලූප වලට සංඛ්යා ලැයිස්තුවක් ඉදිරිපත් කිරීමට වඩා වැඩි යමක් කළ හැකිය. ඔබට අනෙක් විධාන ලැයිස්තුවේ ලැයිස්තුවක් ලෙස භාවිතා කළ හැකිය.

ශ්රව්ය දෘශ්ය ගොනුවක MP3 සිට WAV දක්වා පරිවර්තනය කරන්නේ කෙසේදැයි පහත උදාහරණයෙන් දැක්වේ.

#! / bin / bash

මෙම උදාහරණයේ ලැයිස්තු වත්මන් ෆෝල්ඩරයේ .MP3 දිගුව සමඟ සෑම ගොනුවක්ම වන අතර ගොනුව විචල්යය වේ.

Mpg විධානය MP3 ගොනුව WAV බවට පරිවර්තනය කරයි. කෙසේ වෙතත්, ඔබ විසින් ප්රථමයෙන් ඔබේ ඇසුරුම් කළමණාකරු භාවිතයෙන් මෙය ස්ථාපනය කල යුතුව ඇත.