ஒரு பாஷ் ஸ்கிரிப்ட் உள்ள டெஸ்ட் நிபந்தனைகள் பயன்படுத்துவது எப்படி

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

ஒரு அடிப்படை உதாரணம்

நீங்கள் முனைய சாளரத்தை திறப்பதன் மூலம் இந்த கட்டளைகளை முயற்சி செய்யலாம்.

test 1 -eq 2 && echo "yes" || எதிரொலி "இல்லை"

மேலே உள்ள கட்டளை பின்வருமாறு உடைக்கப்படலாம்:

சாராம்சத்தில், கட்டளை 1 முதல் 2 வரை ஒப்பிடுகையில், அவர்கள் "ஆம்" என்று காட்டும் எதிரொலி "ஆமாம்" அறிக்கை செயல்படுத்தப்படுகிறது மற்றும் அவர்கள் பொருந்தவில்லை என்றால் எதிரொலி "இல்லை" அறிக்கை "இல்லை" என்பதைக் காட்டுகிறது.

எண்கள் ஒப்பிட்டு

நீங்கள் எண்களாகப் பொருத்தி கூறுகளை ஒப்பிடுகையில் பின்வரும் ஒப்பீட்டு ஆபரேட்டர்களைப் பயன்படுத்தலாம்:

எடுத்துக்காட்டுகள்:

test 1 -eq 2 && echo "yes" || எதிரொலி "இல்லை"

(திரைக்கு "இல்லை" காட்டப்படுகிறது, ஏனெனில் 1 சமமாக இல்லை 2)

test 1 -ge 2 && echo "yes" || எதிரொலி "இல்லை"

(திரைக்கு "இல்லை" காட்டப்படுகிறது, ஏனெனில் 1 என்பது 2 அல்லது அதற்கு சமமாக இல்லை)

test 1 -gt 2 && echo "yes" || எதிரொலி "இல்லை"

(திரைக்கு "இல்லை" காட்டப்படுகிறது, ஏனென்றால் 1 2 ஐ விட அதிகமாக இல்லை)

test 1 -le 2 && echo "yes" || எதிரொலி "இல்லை"

(திரைக்கு "ஆம்" காட்டப்படுகிறது, ஏனெனில் 1 குறைவாகவோ அல்லது அதற்கு சமமாகவோ உள்ளது)

test 1 -lt 2 && echo "yes" || எதிரொலி "இல்லை"

(திரைக்கு "ஆம்" காட்டப்படுகிறது, ஏனெனில் 1 குறைவாகவோ அல்லது அதற்கு சமமாகவோ உள்ளது)

test 1 -ne 2 && echo "yes" || எதிரொலி "இல்லை"

(திரைக்கு "ஆம்" காட்டப்படுகிறது, ஏனெனில் 1 சமமாக இல்லை 2)

உரை ஒப்பிட்டு

நீங்கள் சரங்களைக் கூறுவதற்கு கூறுகளை ஒப்பிடுகையில் பின்வரும் ஒப்பீட்டு இயக்கிகளைப் பயன்படுத்தலாம்:

எடுத்துக்காட்டுகள்:

சோதனை "string1" = "string2" && echo "yes" || எதிரொலி "இல்லை"

("string1" சமமாக இல்லை "string2" ஏனெனில் திரையில் "இல்லை" காட்டுகிறது)

சோதனை "string1"! = "string2" && echo "yes" || எதிரொலி "இல்லை"

("ஆமாம்" திரையில் காண்பிக்கிறது, ஏனெனில் "string1" சமமாக இல்லை "string2")

test -n "string1" && echo "yes" || எதிரொலி "இல்லை"

(திரையில் "ஆமாம்" காட்டப்படுகிறது, ஏனெனில் "string1" என்பது ஒரு சரம் நீளத்தைக் காட்டிலும் அதிகமாக உள்ளது)

test -z "string1" && echo "yes" || எதிரொலி "இல்லை"

(திரைக்கு "இல்லை" காட்டப்படுகிறது, ஏனெனில் "string1" என்பது ஒரு சரம் நீளத்தை விட பூஜ்யம் அதிகமாக உள்ளது)

கோப்புகள் ஒப்பிடுகையில்

நீங்கள் கோப்புகளை ஒப்பிட்டு நீங்கள் பின்வரும் ஒப்பீடு ஆபரேட்டர்கள் பயன்படுத்த முடியும்:

எடுத்துக்காட்டுகள்:

test / path / to / file1 -n / path / to / file2 && echo "yes"

(File2 விட file1 புதியது என்றால் "yes" என்ற வார்த்தை காட்டப்படும்)

test -e / path / to / file1 && echo "yes"

(file1 என்றால் "yes" என்ற வார்த்தை இருக்கும் எனில்)

test -O / path / to / file1 && echo "yes"

(நீங்கள் கோப்பு 1 சொந்தமானது என்றால், "ஆம்" என்ற வார்த்தை காட்டப்படுகிறது)

சொல்

பல நிபந்தனைகளை ஒப்பிட்டு

இதுவரை எல்லாம் எல்லாம் ஒன்றுக்கு ஒன்று பொருந்துகிறது ஆனால் நீங்கள் இரண்டு நிலைகளை ஒப்பிட விரும்பினால் என்ன.

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

இரு நிபந்தனைகளையும் சோதித்து பின்வரும் அறிக்கை பயன்படுத்த:

test 4 -eq 4-a "moo" = "moo" && echo "இது ஒரு மாடு" || எதிரொலி "இது ஒரு மாடு இல்லை"

இங்கே முக்கிய பகுதியாக -அது குறிக்கிறது மற்றும்.

அதே சோதனைகளை மேற்கொள்வதற்கான ஒரு சிறந்த மற்றும் மிகவும் பொதுவாக பயன்படுத்தப்படும் வழி மற்றும் பின்வருமாறு உள்ளது:

test 4 -eq 4 && test "moo" = "moo" && echo "இது ஒரு மாடு" || எதிரொலி "இது ஒரு மாடு இல்லை"

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

test -e file1.txt -o -e file1.doc && echo "file1 exists" || எதிரொலி "file1 இல்லை"

இங்கே முக்கிய பகுதியாக உள்ளது -o இது குறிக்கிறது அல்லது.

அதே சோதனைகளை மேற்கொள்வதற்கான ஒரு சிறந்த மற்றும் மிகவும் பொதுவாக பயன்படுத்தப்படும் வழி மற்றும் பின்வருமாறு உள்ளது:

test -e file1.txt || test -e file1.doc && echo "file1 exists" || எதிரொலி "file1 இல்லை"

டெஸ்ட் சொல்வதை நீக்குதல்

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

[-e file1.txt] && echo "file1 உள்ளது" || எதிரொலி "file1 இல்லை"

[மற்றும்] அடிப்படையில் சோதனை அதே பொருள்.

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

[4 -eq 4] && ["moo" = "moo"] && எதிரொலி "இது ஒரு மாடு" || எதிரொலி "இது ஒரு மாடு இல்லை"

[-e file1.txt] || [-e file1.doc] && echo "file1 உள்ளது" || எதிரொலி "file1 இல்லை"

சுருக்கம்

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