Skip to main content

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

Anonim

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

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

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

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

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

  • சோதனை - இது நீங்கள் ஒரு ஒப்பீடு செய்ய பற்றி பொருள்
  • 1 - நீங்கள் ஒப்பிடும் போகிற முதல் உறுப்பு
  • -eq - நீங்கள் எப்படி ஒப்பிடுகிறீர்கள். இந்த வழக்கில், நீங்கள் ஒரு எண் மற்றொரு சமமாக இருக்கிறதா என்று சோதிக்கிறீர்கள்.
  • 2 - நீங்கள் முதல் உறுப்புடன் ஒப்பிடுகிற உறுப்பு
  • && - விளைவு உண்மை என்றால் பின்வரும் அறிக்கை இயக்கவும்
  • எதிரொலி "ஆமாம்" - ஒப்பீடு உண்மையானது என்றால் இயங்கும் கட்டளை
  • || - விளைவு தவறானது என்றால் பின்வரும் அறிக்கையை இயக்கவும்
  • எதிரொலி "இல்லை" - ஒப்பீடு மீண்டும் தவறானால் இயக்க கட்டளை

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

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

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

  • -eq - மதிப்பை 1 சம மதிப்பு 2 செய்கிறது
  • -ge - மதிப்பு 1 அதிகமாக அல்லது மதிப்பு 2 க்கு சமமாக இருக்கும்
  • -gt - மதிப்பு 2 விட மதிப்பு 1 அதிகமாக உள்ளது
  • -le - value 1 க்கு குறைவாக அல்லது மதிப்பு 2 க்கு சமமாக உள்ளது
  • -lt - மதிப்பு 2 விட மதிப்பு 1 குறைவாக உள்ளது
  • -ne - மதிப்பு 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)

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

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

  • = - சரம் 1 போட்டி சரம் 2 செய்கிறது
  • ! = - சரம் 2 க்கு சரம் 1 வேறுபட்டது
  • -n - 0 விட சரம் நீளம் அதிகமாக உள்ளது
  • -z - சரம் நீளம் 0 ஆகும்

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

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

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

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

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

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

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

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

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

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

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

  • -f - கோப்புகள் அதே சாதனம் மற்றும் ஐயோடட் எண்களைக் கொண்டுள்ளன (அவை ஒரே கோப்பாகும்)
  • -nt - இரண்டாவது கோப்பை விட புதிய கோப்பு புதியது
  • -o - இரண்டாவது கோப்பை விட பழைய கோப்பு
  • -b - கோப்பு உள்ளது மற்றும் சிறப்பு சிறப்பு உள்ளது
  • -c - கோப்பில் உள்ளது மற்றும் சிறப்பு சிறப்பு
  • -d - கோப்பு உள்ளது மற்றும் ஒரு அடைவு உள்ளது
  • -e - கோப்பு உள்ளது
  • -f - கோப்பு உள்ளது மற்றும் ஒரு வழக்கமான கோப்பு
  • -g - கோப்பு உள்ளது மற்றும் குறிப்பிட்ட குழு எண் உள்ளது
  • -G - கோப்பு உள்ளது மற்றும் பயனர் குழு மூலம் உரிமையாளர்
  • -h - கோப்பு உள்ளது மற்றும் ஒரு குறியீட்டு இணைப்பு
  • -k - கோப்பு உள்ளது மற்றும் அதன் ஒட்டும் பிட் தொகுப்பு உள்ளது
  • -L - அதே -h
  • -ஓ - கோப்பு நீங்கள் உரிமையாளர் உள்ளது
  • -p - கோப்பு உள்ளது மற்றும் ஒரு பெயர் குழாய் உள்ளது
  • -r - கோப்பு உள்ளது மற்றும் வாசிக்கக்கூடியது
  • -s - கோப்பில் உள்ளது மற்றும் பூஜ்ஜியத்தை விட அதிகமாக உள்ளது
  • -S - கோப்பு உள்ளது மற்றும் ஒரு சாக்கெட் உள்ளது
  • -t - கோப்பு விளக்கி ஒரு முனையத்தில் திறக்கப்பட்டுள்ளது
  • -u - கோப்பில் உள்ளது மற்றும் செட்-பயனர்- id பிட் அமைக்கப்பட்டது
  • -w - கோப்பு உள்ளது மற்றும் எழுதக்கூடியது
  • -x - கோப்பு உள்ளது மற்றும் இயங்கக்கூடிய உள்ளது

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

test / path / to / file1 -nt / 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 இல்லை"

சுருக்கம்

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