01 of 08
ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບສິ່ງທີ່
ໃນສ່ວນກ່ອນຫນ້ານີ້ຂອງບົດແນະນໍາ 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 - ການປຽບທຽບສາຍ
ໃນຕົວຢ່າງຂ້າງເທິງການທົດສອບການປຽບທຽບສອງສາຍດຽວກັນແລະຖາມຄໍາຖາມ gary ມາກ່ອນ bob ໃນຫນັງສື?
ແນ່ນອນຄໍາຕອບແມ່ນບໍ່.
ສະຄິບແນະນໍາຜູ້ປະຕິບັດງານຫນ້ອຍກວ່າ (<). ໃນຖານະເປັນຜູ້ປະຕິບັດຫນ້ອຍກວ່າຍັງຖືກນໍາໃຊ້ເພື່ອການໂອນຍ້າຍ, ທ່ານຕ້ອງຫນີມັນດ້ວຍ slash (\) ສໍາລັບມັນຫມາຍເຖິງວ່າຫນ້ອຍກວ່ານັ້ນແມ່ນຫຍັງໃນ script ຂ້າງເທິງນີ້ຂ້ອຍໄດ້ປຽບທຽບ "$ name1" \ "" $ name2 ".
ກົງກັນຂ້າມຂອງຫນ້ອຍກວ່າແມ່ນແນ່ນອນຫຼາຍກ່ວາ. ແທນທີ່ຈະໃຊ້ \ <ໃຊ້ \>.
ຍົກຕົວຢ່າງ
ຖ້າ ["$ name1" \> "$ name2"]
03 of 08
ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ການປຽບທຽບສາຍ
ຖ້າທ່ານຕ້ອງການກວດສອບວ່າຕົວແປມີຄ່າໃດໆທ່ານສາມາດໃຊ້ການທົດສອບຕໍ່ໄປນີ້:
ຖ້າ [-n $ name2]
ໃນສະຄິບຂ້າງເທິງນີ້ຂ້າພະເຈົ້າໄດ້ທົດສອບວ່າ $ name2 ໄດ້ຖືກມອບໃຫ້ເປັນມູນຄ່າແລະຖ້າມັນບໍ່ແມ່ນຂໍ້ຄວາມ "ບໍ່ມີ bob, ບໍ່ມີ bob ໃດຈະປາກົດ".
04 of 08
ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ການປຽບທຽບສາຍ
ໃນສະໄລ້ຜ່ານມາພວກເຮົາໄດ້ກວມເອົາວ່າຕົວແປແມ່ນກໍານົດໄວ້ຫຼືບໍ່. ບາງຄັ້ງເຖິງວ່າມີຕົວແປທີ່ໄດ້ກໍານົດແຕ່ວ່າມັນອາດບໍ່ມີຄ່າ.
ຕົວຢ່າງ:
name1 = ""
ເພື່ອທົດສອບວ່າຕົວແປມີຄ່າຫຼືບໍ່ (ເຊົ່ນມີຄວາມຍາວຂອງສູນ) ໃຊ້ -z ດັ່ງຕໍ່ໄປນີ້:
ຖ້າ [-z $ name1]
ໃນສະຄິບຂ້າງເທິງນີ້ຂ້າພະເຈົ້າໄດ້ຕັ້ງ $ name1 ໃຫ້ເປັນ string ຍາວແລະຫຼັງຈາກນັ້ນປຽບທຽບມັນໃຊ້ -z. ຖ້າ $ name1 ມີຄວາມຍາວໃນຄວາມຍາວຂໍ້ຄວາມ "gary ໄດ້ຫມົດອອກໃນຕອນແລງ" ຈະຖືກສະແດງ.
05 of 08
ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບຕົວເລກ
ດັ່ງນັ້ນໄກທັງຫມົດປຽບທຽບໄດ້ສໍາລັບສາຍ. ຈະເປັນແນວໃດກ່ຽວກັບການປຽບທຽບຕົວເລກ?
ຕົວຫນັງສືຂ້າງເທິງສະແດງໃຫ້ເຫັນຕົວຢ່າງຂອງການປຽບທຽບສອງຕົວເລກ:
#! / bin / bash
a = 4
b = 5ຖ້າ [$ a = $ b]
ຫຼັງຈາກນັ້ນ,
echo "4 = 5"
ອື່ນ ໆ
echo "4 ບໍ່ເທົ່າກັບ 5"
fi
ການກໍານົດຕົວແປເປັນຈໍານວນຫນຶ່ງພຽງແຕ່ກໍານົດໂດຍບໍ່ມີເຄື່ອງຫມາຍຄໍາສັ່ງ. ຫຼັງຈາກນັ້ນທ່ານສາມາດປຽບທຽບຕົວເລກທີ່ມີອາການເທົ່າທຽມກັນ.
ຂ້ອຍມັກໃຊ້ຕົວປະຕິບັດຕໍ່ໄປນີ້ເພື່ອປຽບທຽບສອງຕົວເລກ:
ຖ້າ [$ a-eq $ b]
06 of 08
ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບຕົວເລກ
ຖ້າທ່ານຕ້ອງການຈະປຽບທຽບວ່າຫມາຍເລກນ້ອຍກວ່າຫມາຍເລກອື່ນທ່ານສາມາດໃຊ້ຕົວແທນຫນ້ອຍກວ່າ (<). ເຊັ່ນດຽວກັນກັບສາຍທີ່ທ່ານຕ້ອງຫນີຈາກຜູ້ປະຕິບັດງານຫນ້ອຍກວ່າທີ່ມີ slash. (\ ')
ວິທີການທີ່ດີກ່ວາການປຽບທຽບຕົວເລກແມ່ນການນໍາໃຊ້ລະຫັດດັ່ງຕໍ່ໄປນີ້ແທນ:
- ນ້ອຍກວ່າ -lt
- ນ້ອຍກວ່າຫລືເທົ່າກັບ -le
- Greater than -gt
- ຫລາຍກວ່າຫລືເທົ່າກັບ -ge
ຍົກຕົວຢ່າງ:
ຖ້າ [$ a-lt $ b]
ຖ້າ [$ a -le $ b]
ຖ້າ [$ a-ge $ b]
ຖ້າ [$ a-gt $ b]
07 of 08
ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ປຽບທຽບຕົວເລກ
ສຸດທ້າຍສໍາລັບຄູ່ມືນີ້, ຖ້າທ່ານຕ້ອງການທົດສອບວ່າມີສອງຕົວເລກແຕກຕ່າງກັນ, ທ່ານສາມາດນໍາໃຊ້ຕົວປະຕິບັດທີ່ນ້ອຍກວ່າແລະຫຼາຍກວ່າກັນ (<>) ຫຼື -ne ຄືດັ່ງຕໍ່ໄປນີ້:
ຖ້າ [$ a <> $ b]
ຖ້າ [$ a -ne $ b]
08 of 08
ຄູ່ມືເລີ່ມຕົ້ນເພື່ອ BASH - ຜູ້ປະກອບການປຽບທຽບ - ສະຫຼຸບ
ຖ້າທ່ານໄດ້ພາດໂອກາດສາມພາກສ່ວນທໍາອິດຂອງຄູ່ມືນີ້ທ່ານສາມາດຊອກຫາໄດ້ໂດຍການຄລິກໃສ່ການເຊື່ອມຕໍ່ຕໍ່ໄປນີ້:
ໃນສ່ວນຕໍ່ໄປຂອງຄູ່ມືຂ້ອຍຈະກວມເອົາຄະນິດສາດ.