පරීක්ෂණ විධානය ලිනක්ස් විධාන රේඛාවේදී තවත් මූලද්රව්යයකට සංසන්දනය කළ හැකි නමුත් එය බහුලව භාවිතා වන BASH shell scripts වන තර්කනමය ප්රකාශයන් සහ න්යාය පාලනය කිරීම සිදු කරනු ලබයි.
මූලික උදාහරණයක්
ඔබට ටර්මිනල් කවුළුවක් විවෘත කිරීමෙන් ඔබට මෙම විධානයන් උත්සාහ කළ හැකිය.
පරීක්ෂණය 1-eq 2 && echo "ඔව්" || echo "no"
ඉහත දැක්වෙන විධානය පහත පරිදි බිඳ දැමිය හැක:
- පරීක්ෂණය - මෙයින් අදහස් වන්නේ ඔබ සන්සන්දනය කිරීමයි
- 1 - ඔබ සැසඳීමට යන පළමු මූලද්රව්යය
- -eq (ඔබ මෙය සසඳා බලන්නේ කෙසේද, එක් සංඛ්යාවකට සමාන වන්නේදැයි ඔබ පරීක්ෂා කරයි)
- 2 - ඔබ පළමු මූලද්රව්යය සමඟ සසඳන විට මූලද්රව්යය
- && - ප්රතිඵලය සත්ය නම් පහත සඳහන් ප්රකාශය ක්රියාත්මක කරන්න
- echo "ඔව්" - සන්සන්දනය සත්ය නම් නැවත ධාවනය කළ යුතු විධානය
- || - ප්රතිඵලය අසත්ය නම් පහත සඳහන් ප්රකාශය ක්රියාත්මක කරන්න
- echo "no" - සන්සන්දනය අසත්ය නම් ධාවනය කල යුතු විධානය
සාරාංශය අනුව, මෙම විධානය 1 සිට 2 දක්වා සැසඳිය හැකි අතර ඒවා echo "yes" ප්රකාශනය ක්රියාත්මක වන අතර එය "ඔව්" පෙන්වයි. "No" යනුවෙන් දැක්වෙන echo "no" ප්රකාශය නොගැලපේ නම් එය ක්රියාත්මක වේ.
ගණන් ගැනීම ගණන් ගැනීම
ඔබ සංඛ්යා ලෙස සමාලෝචනය කරන ලද මූලද්රව්ය සසඳන විට පහත දැක්වෙන සැසඳීමේ ක්රියාකරුවන් භාවිතා කළ හැකිය:
- -eq - අගය 1 සමාන අගයක් 2
- -ge - අගය 1 ට වැඩි හෝ සමාන අගයක් වේ
- -gt - අගය 2 ට වඩා අගය 1
- -le - අගය 1 ට වඩා අගය 2 ට සමාන වේ
- -lt - අගය 1 ට වඩා 1 අගයයි
- -ne - වටිනාකම 1 සමාන නොවේ 2
උදාහරණ:
පරීක්ෂණය 1-eq 2 && echo "ඔව්" || echo "no"
(1 ට සමාන නොවේ 2)
පරීක්ෂණය 1-කර 2 && echo "ඔව්" || echo "no"
(1 ට වඩා විශාල හෝ සමාන නොවේ 2)
පරීක්ෂණය 1 -gt 2 && echo "ඔව්" || echo "no"
(1 ට වඩා වැඩි නොවූ බැවින් තිරය වෙත "නැහැ" පෙන්වයි)
පරීක්ෂණය 1 -le 2 && echo "ඔව්" || echo "no"
("ඔව්" තිරයට පෙන්වයි 1 ට අඩු හෝ සමාන වේ 2)
පරීක්ෂණය 1 -lt 2 && echo "ඔව්" || echo "no"
("ඔව්" තිරයට පෙන්වයි 1 ට අඩු හෝ සමාන වේ 2)
පරීක්ෂණය 1 -ne 2 && echo "ඔව්" || echo "no"
(1 ට සමාන නොවේ) තිරය වෙත "ඔව්" 2)
සැසඳීම
පහත දැක්වෙන සැසඳීම් ක්රියාකරුවන් භාවිතා කළ හැකිය:
- = - 1 අනුපිළිවෙලෙහි අනුපිළිවෙල 2
- ! = - ශ්රේණියේ අංක 2 ට 1 ට වෙනස් වේ
- -n - 0 ට වඩා ශ්රේණිය දිග
- -z - ශ්රේණිය 0 ක් වේ
උදාහරණ:
පරීක්ෂණය "string1" = "string2" && echo "ඔව්" || echo "no"
("No1" තිරය වෙත ප්රදර්ශනය කරනු ලැබේ, "string1" යනු "string2" නොවේ)
පරීක්ෂණය "string1"! = "string2" && echo "ඔව්" || echo "no"
("ඔව්" තිරය වෙත පෙන්වයි) "string1" යනු "string2" නොවේ)
test -n "string1" && echo "ඔව්" || echo "no"
("ඔව්" තිරය වෙත පෙන්වයි) "string1" ශුන්යයට වඩා දිග සංඛ්යාවක් ඇත)
test -z "string1" && echo "ඔව්" || echo "no"
("no1" තිරය වෙත පෙන්වයි) "string1" ශුන්යයට වඩා ශ්රේණීය දිගක් ඇත)
ගොනු සැසඳීම
ඔබ සසඳා බලන විට පහත දැක්වෙන සැසඳීම් ක්රියාකරුවන් භාවිතා කළ හැකිය:
- -ef - ගොනු වලට එකම උපාංගය සහ inode අංක තිබේ (ඒවා එකම ගොනුවකි)
- -nt - දෙවන ගොනුවට වඩා පළමු පළමු ගොනුව නව වේ
- -ot - පළමු ගොනුව දෙවන ගොනුවට වඩා පැරණිද?
- -b - මෙම ගොනුව පවතින අතර විශේෂ අවහිරය වේ
- -c - ගොනුව පවතින අතර චරිතය විශේෂ වේ
- -d - ගොනුව පවතින අතර එය බහලුමක් වේ
- -ඊ - ගොනුව පවතී
- -f - ගොනුව පවතින අතර එය සාමාන්ය ගොනුවකි
- -g - ගොනුව පවතින අතර විශේෂිත සමූහ අංකය ඇත
- -G - ගොනුව පවතින අතර පරිශීලකයාගේ කණ්ඩායම විසින් හිමිකරු ඇත
- -h - ගොනුව පවතින අතර එය සංකේතාත්මක ඈඳියක්
- -k - ගොනුව පවතින අතර එහි ඇලෙන සුළු බිට් සකසා තිබේ
- -L - -H
- -O - ගොනුව පවතින ඔබ ඔබ අයිතිකරු වේ
- -p - ගොනුව පවතින අතර එය නම් කරන ලද නලයකි
- -r - ගොනුව පවතින අතර එය කියවිය හැකි වේ
- -s - ගොනුව පවතින අතර ශුන්යයට වඩා විශාල වේ
- -S - ගොනුව පවතින අතර එය සොකට් එකක් වේ
- -t - ගොනු විස්තරය ටර්මිනලය මත විවෘත වේ
- -u - ගොනුව පවතින අතර set-user-id bit සකස් කර ඇත
- -w - ගොනුව පවතින අතර ලිවිය හැක
- -x - ගොනුව පවතින අතර එය ක්රියාත්මක කළ හැකිය
උදාහරණ:
test / path / to / file1 -n / path / to / file2 && echo "ඔව්"
(File1 වඩා ෆයිනස් එකක් නම්, "ඔව්" යන වචනය දිස්වනු ඇත)
test -e / path / to / file1 && echo "ඔව්"
(file1 obstaja නම් "ඔව්" යන වචනය දිස්වනු ඇත)
පරීක්ෂණය -O / path / to / file1 && echo "ඔව්"
(ඔබ file1 නම්, "ඔව්" යන වචනය පෙන්වයි)
පර්යේෂණය
- බ්ලොක් විශේෂ - ගොනුව බ්ලොක් උපාංගයක් වන අතර එය දත්ත බයිට් වල කියවීම් බව කියවෙයි. ඒවා සාමාන්යයෙන් දෘඪ තැටි වැනි උපාංග ගොනු වේ.
- Character special - ඔබ එය වෙත ලිවීමේදී වහාම ක්රියාත්මක වන අතර එය පොදුවේ සම්ප්රේශකයක් වැනි උපකරණයකි
බහු කොන්දේසි සමග සැසඳීම
සියල්ලටමත් වඩා සෑම දෙයක්ම එකිනෙකට පටහැනියි. නමුත් ඔබ කොන්දේසි දෙකක් සන්සන්දනය කිරීමට අවශ්ය නම්.
නිදසුනක් වශයෙන්, සත්ව සතෙකුගේ කකුල් 4 ක් හා "මෝ" යනවා නම් එය හරකෙකු විය හැකිය. සරළව 4 කකුල් පරික්ෂා කිරීම ඔබට එළදෙනෙකු සිටින බව සහතික නොවනු ඇත.
කොන්දේසි දෙකම එකවරම පරීක්ෂා කිරීමට පහත සඳහන් ප්රකාශය භාවිතා කරන්න:
test 4-eq 4 -a "moo" = "moo" && echo "එය හරකයි" || echo "එය හරක් නොවේ"
මෙහි ප්රධාන අංගය වන්නේ - ඒ සඳහා වන සහ.
එම පරීක්ෂණයට වඩා හොඳ සහ වඩා බහුලව භාවිතා වන ක්රමයක් පහත පරිදි වේ:
test 4-eq 4 && test "moo" = "moo" && echo "එය හරකයි" || echo "එය හරක් නොවේ"
ඔබට කිරීමට අවශ්ය තවත් පරීක්ෂණයක් වන්නේ ප්රකාශන දෙකකට සැසඳීම සහ එක්කෝ සත්ය ලෙස නිපදවනු ලැබේ. උදාහරණයක් ලෙස, "file1.txt" යනුවෙන් හැඳින්වෙන ගොනුව තිබෙන බව හෝ "file1.doc" යනුවෙන් හැඳින්වෙන ගොනුව පවතී නම්, ඔබ පහත සඳහන් විධානය භාවිතා කළ හැකිය
test -e file1.txt -o -e file1.doc && echo "file1 exists" || echo "file1 නොපවතියි"
මෙහි ප්රධාන කොටස වන්නේ -ඔය සඳහා වූ හෝ.
එම පරීක්ෂණයට වඩා හොඳ සහ වඩා බහුලව භාවිතා වන ක්රමයක් පහත පරිදි වේ:
test -e file1.txt || test -e file1.doc && echo "file1 exists" || echo "file1 නොපවතියි"
පරීක්ෂක යතුරක් ඉවත් කිරීම
ඔබට සැසඳීම සඳහා වචනය පරීක්ෂණය භාවිතා කිරීම සැබවින්ම අවශ්ය නොවේ. ඔබ කළ යුත්තේ, පහත දැක්වෙන පරිදි කොටු වරහන් තුල ප්රකාශය ඇතුල් කරන්න:
[-e file1.txt] && echo "file1 exists" || echo "file1 නොපවතියි"
[සහ] මූලිකවම පරීක්ෂණයට සමාන වේ.
දැන් ඔබට පහත සඳහන් පරිදි විවිධ කොන්දේසි සමඟ සැසඳීමෙන් ඔබට දියුණු විය හැකිය.
[4-eq 4] && ["moo" = "moo"] && echo "එය හරකයි" || echo "එය හරක් නොවේ"
[-e file1.txt] || [-e file1.doc] && echo "file1 exists" || echo "file1 නොපවතියි"
සාරාංශය
පරීක්ෂණ විධාන පුවරුව තුල වඩා ප්රයෝජනවත් වේ. ඔබට එක් විචල්යයක වෙනත් අගය සහ පාලක වැඩසටහන් ගලායාම අගය පරීක්ෂා කළ හැකිය. සම්මත විධාන රේඛාවේදී, ගොනුවක් තිබේදැයි පරීක්ෂා කිරීමට එය භාවිතා කළ හැකිය