ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບສິ່ງທີ່

01 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບສິ່ງທີ່

BASH Tutorial-Comparing Strings

ໃນສ່ວນກ່ອນຫນ້ານີ້ຂອງບົດແນະນໍາ BASH ພວກເຮົາໄດ້ເບິ່ງຄໍາເວົ້າທີ່ ມີເງື່ອນໄຂ .

ຄູ່ມືນັ້ນແມ່ນດົນນານແຕ່ກໍ່ພຽງແຕ່ສະແດງວິທີການຄວບຄຸມການໄຫລຂອງເຫດຜົນ. ຄູ່ມືນີ້ສະແດງວິທີທີ່ແຕກຕ່າງກັນທີ່ທ່ານສາມາດປຽບທຽບຕົວແປ.

ຮູບພາບຂ້າງເທິງສະແດງໃຫ້ເຫັນຕົວຢ່າງທໍາອິດໃນຄູ່ມືອາທິດນີ້:

#! / bin / bash

name1 = "gary"
name2 = "bob"

ຖ້າ ["$ name1" = "$ name2"]
ຫຼັງຈາກນັ້ນ,
echo "ຊື່ທີ່ກົງກັນ"
ອື່ນ ໆ
echo "ຊື່ບໍ່ກົງກັບ"
fi


ໃນສະຄິບຂ້າງເທິງຂ້າພະເຈົ້າໄດ້ກໍານົດສອງຕົວແປທີ່ເອີ້ນວ່າ name1 ແລະ name2 ແລະກໍາຫນົດໃຫ້ພວກເຂົາຄ່າ "gary" ແລະ "bob". ໃນຖານະທີ່ຕົວແປທີ່ມີຢູ່ລະຫວ່າງເຄື່ອງຫມາຍຄໍາສັບພວກເຂົາເອີ້ນວ່າຕົວແປຕົວອັກສອນທີ່ຈະກາຍເປັນທີ່ກ່ຽວຂ້ອງກັບການສອນ.

ສະຄິບທັງຫມົດບໍ່ແມ່ນການປຽບທຽບມູນຄ່າຂອງ $ name1 ແລະ $ name2 ແລະຖ້າພວກເຂົາມີຄໍາວ່າ output string "names match" ແລະຖ້າພວກເຂົາບໍ່ອອກ string "names do not match".

ເຄື່ອງຫມາຍວົງຢືມກ່ຽວກັບນາມສະກຸນ $ name1 ແລະ $ name2 ແມ່ນສໍາຄັນເພາະວ່າຖ້າຄ່າຂອງພວກມັນບໍ່ໄດ້ຖືກກໍານົດແລ້ວ script ຈະຍັງເຮັດວຽກ.

ຕົວຢ່າງເຊັ່ນຖ້າ $ name1 ບໍ່ເຄີຍຖືກກໍານົດແລ້ວທ່ານຈະປຽບທຽບກັບ "bob". ໂດຍບໍ່ມີເຄື່ອງຫມາຍຄໍາເວົ້າທີ່ທ່ານຈະຖືກປະໄວ້ດ້ວຍ = "bob" ຊຶ່ງຈະບໍ່ສໍາເລັດ.

ນອກນັ້ນທ່ານຍັງສາມາດໃຊ້! = notation ເພື່ອກໍານົດບໍ່ເທົ່າກັບດັ່ງຕໍ່ໄປນີ້:

ຖ້າ ["$ name1"! = "$ name2"]

02 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ການປຽບທຽບສາຍ

BASH Tutorial-Comparing Strings

ໃນຕົວຢ່າງຂ້າງເທິງການທົດສອບການປຽບທຽບສອງສາຍດຽວກັນແລະຖາມຄໍາຖາມ gary ມາກ່ອນ bob ໃນຫນັງສື?

ແນ່ນອນຄໍາຕອບແມ່ນບໍ່.

ສະຄິບແນະນໍາຜູ້ປະຕິບັດງານຫນ້ອຍກວ່າ (<). ໃນຖານະເປັນຜູ້ປະຕິບັດຫນ້ອຍກວ່າຍັງຖືກນໍາໃຊ້ເພື່ອການໂອນຍ້າຍ, ທ່ານຕ້ອງຫນີມັນດ້ວຍ slash (\) ສໍາລັບມັນຫມາຍເຖິງວ່າຫນ້ອຍກວ່ານັ້ນແມ່ນຫຍັງໃນ script ຂ້າງເທິງນີ້ຂ້ອຍໄດ້ປຽບທຽບ "$ name1" \ "" $ name2 ".

ກົງກັນຂ້າມຂອງຫນ້ອຍກວ່າແມ່ນແນ່ນອນຫຼາຍກ່ວາ. ແທນທີ່ຈະໃຊ້ \ <ໃຊ້ \>.

ຍົກ​ຕົວ​ຢ່າງ

ຖ້າ ["$ name1" \> "$ name2"]

03 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ການປຽບທຽບສາຍ

BASH Tutorial-Comparing Strings

ຖ້າທ່ານຕ້ອງການກວດສອບວ່າຕົວແປມີຄ່າໃດໆທ່ານສາມາດໃຊ້ການທົດສອບຕໍ່ໄປນີ້:

ຖ້າ [-n $ name2]

ໃນສະຄິບຂ້າງເທິງນີ້ຂ້າພະເຈົ້າໄດ້ທົດສອບວ່າ $ name2 ໄດ້ຖືກມອບໃຫ້ເປັນມູນຄ່າແລະຖ້າມັນບໍ່ແມ່ນຂໍ້ຄວາມ "ບໍ່ມີ bob, ບໍ່ມີ bob ໃດຈະປາກົດ".

04 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ການປຽບທຽບສາຍ

BASH Tutorial-Comparing Strings

ໃນສະໄລ້ຜ່ານມາພວກເຮົາໄດ້ກວມເອົາວ່າຕົວແປແມ່ນກໍານົດໄວ້ຫຼືບໍ່. ບາງຄັ້ງເຖິງວ່າມີຕົວແປທີ່ໄດ້ກໍານົດແຕ່ວ່າມັນອາດບໍ່ມີຄ່າ.

ຕົວ​ຢ່າງ:

name1 = ""

ເພື່ອທົດສອບວ່າຕົວແປມີຄ່າຫຼືບໍ່ (ເຊົ່ນມີຄວາມຍາວຂອງສູນ) ໃຊ້ -z ດັ່ງຕໍ່ໄປນີ້:

ຖ້າ [-z $ name1]

ໃນສະຄິບຂ້າງເທິງນີ້ຂ້າພະເຈົ້າໄດ້ຕັ້ງ $ name1 ໃຫ້ເປັນ string ຍາວແລະຫຼັງຈາກນັ້ນປຽບທຽບມັນໃຊ້ -z. ຖ້າ $ name1 ມີຄວາມຍາວໃນຄວາມຍາວຂໍ້ຄວາມ "gary ໄດ້ຫມົດອອກໃນຕອນແລງ" ຈະຖືກສະແດງ.

05 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບຕົວເລກ

BASH Tutorial - ປຽບທຽບເລກ.

ດັ່ງນັ້ນໄກທັງຫມົດປຽບທຽບໄດ້ສໍາລັບສາຍ. ຈະເປັນແນວໃດກ່ຽວກັບການປຽບທຽບຕົວເລກ?

ຕົວຫນັງສືຂ້າງເທິງສະແດງໃຫ້ເຫັນຕົວຢ່າງຂອງການປຽບທຽບສອງຕົວເລກ:

#! / bin / bash

a = 4
b = 5

ຖ້າ [$ a = $ b]
ຫຼັງຈາກນັ້ນ,
echo "4 = 5"
ອື່ນ ໆ
echo "4 ບໍ່ເທົ່າກັບ 5"
fi

ການກໍານົດຕົວແປເປັນຈໍານວນຫນຶ່ງພຽງແຕ່ກໍານົດໂດຍບໍ່ມີເຄື່ອງຫມາຍຄໍາສັ່ງ. ຫຼັງຈາກນັ້ນທ່ານສາມາດປຽບທຽບຕົວເລກທີ່ມີອາການເທົ່າທຽມກັນ.

ຂ້ອຍມັກໃຊ້ຕົວປະຕິບັດຕໍ່ໄປນີ້ເພື່ອປຽບທຽບສອງຕົວເລກ:

ຖ້າ [$ a-eq $ b]

06 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບຕົວເລກ

BASH Tutorial - ປຽບທຽບເລກ.

ຖ້າທ່ານຕ້ອງການຈະປຽບທຽບວ່າຫມາຍເລກນ້ອຍກວ່າຫມາຍເລກອື່ນທ່ານສາມາດໃຊ້ຕົວແທນຫນ້ອຍກວ່າ (<). ເຊັ່ນດຽວກັນກັບສາຍທີ່ທ່ານຕ້ອງຫນີຈາກຜູ້ປະຕິບັດງານຫນ້ອຍກວ່າທີ່ມີ slash. (\ ')

ວິທີການທີ່ດີກ່ວາການປຽບທຽບຕົວເລກແມ່ນການນໍາໃຊ້ລະຫັດດັ່ງຕໍ່ໄປນີ້ແທນ:

ຍົກ​ຕົວ​ຢ່າງ:

ຖ້າ [$ a-lt $ b]

ຖ້າ [$ a -le $ b]

ຖ້າ [$ a-ge $ b]

ຖ້າ [$ a-gt $ b]

07 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບຕົວເລກ

BASH Tutorial - ປຽບທຽບເລກ.

ສຸດທ້າຍສໍາລັບຄູ່ມືນີ້, ຖ້າທ່ານຕ້ອງການທົດສອບວ່າມີສອງຕົວເລກແຕກຕ່າງກັນ, ທ່ານສາມາດນໍາໃຊ້ຕົວປະຕິບັດທີ່ນ້ອຍກວ່າແລະຫຼາຍກວ່າກັນ (<>) ຫຼື -ne ຄືດັ່ງຕໍ່ໄປນີ້:

ຖ້າ [$ a <> $ b]

ຖ້າ [$ a -ne $ b]

08 of 08

ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ຜູ້ປະກອບການປຽບທຽບ - ສະຫຼຸບ

ຖ້າທ່ານໄດ້ພາດໂອກາດສາມພາກສ່ວນທໍາອິດຂອງຄູ່ມືນີ້ທ່ານສາມາດຊອກຫາໄດ້ໂດຍການຄລິກໃສ່ການເຊື່ອມຕໍ່ຕໍ່ໄປນີ້:

ໃນສ່ວນຕໍ່ໄປຂອງຄູ່ມືຂ້ອຍຈະກວມເອົາຄະນິດສາດ.