ຄູ່ມືເລີ່ມຕົ້ນເພື່ອເບື້ອງຕົ້ນ - ເງື່ອນໄຂແລະຕົວແປ

ການນໍາສະເຫນີ

ຍິນດີຕ້ອນຮັບພາກສ່ວນທີສາມຂອງ "ຄູ່ມືເລີ່ມຕົ້ນເພື່ອການເບີກຈ່າຍ". ຖ້າທ່ານພາດໂອກາດສອງບົດຂຽນກ່ອນຫນ້ານີ້ທ່ານອາດຈະຕ້ອງການຮູ້ວ່າສິ່ງທີ່ເຮັດໃຫ້ຄູ່ມືນີ້ແຕກຕ່າງກັບຄູ່ມືການຂຽນບລັອກອື່ນໆ.

ຄູ່ມືນີ້ແມ່ນໄດ້ຖືກຂຽນໂດຍຈົວທີ່ສົມບູນກັບ BASH ແລະດັ່ງນັ້ນເປັນຜູ້ອ່ານທີ່ທ່ານຮຽນຮູ້ທີ່ຂ້ອຍຮຽນຮູ້. ໃນຂະນະທີ່ຂ້າພະເຈົ້າເປັນ novice ກັບ BASH ຂ້າພະເຈົ້າມາຈາກພື້ນຖານການພັດທະນາຊອບແວເຖິງແມ່ນວ່າສ່ວນຫຼາຍຂອງສິ່ງທີ່ຂ້າພະເຈົ້າໄດ້ລາຍລັກອັກສອນໄດ້ສໍາລັບເວທີ Windows.

ທ່ານສາມາດເບິ່ງສອງຄູ່ມືທໍາອິດໂດຍການຢ້ຽມຢາມ:

ຖ້າທ່ານມີໃຫມ່ສໍາລັບການສະແກນ BASH, ຂ້າພະເຈົ້າແນະນໍາໃຫ້ອ່ານຄູ່ມືທໍາອິດກ່ອນທີ່ຈະສືບຕໍ່ນໍາໃຊ້ນີ້.

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

ຕິດຕັ້ງ rsstail

ໃນຄໍາສັ່ງເພື່ອປະຕິບັດຕາມຄູ່ມືນີ້ທ່ານຈະຕ້ອງຕິດຕັ້ງຄໍາສັ່ງຄໍາສັ່ງທີ່ເອີ້ນວ່າ rsstail ເຊິ່ງໃຊ້ໃນການອ່ານ RSS feeds .

ຖ້າທ່ານກໍາລັງໃຊ້ປະເພດການແຜ່ກະຈາຍອີງໃສ່ Debian / Ubuntu / Mint ດັ່ງຕໍ່ໄປນີ້:

sudo apt-get install rsstail

ສໍາລັບ Fedora / CentOS ອື່ນໆໃຫ້ພິມຕໍ່ໄປນີ້:

yum install rsstail

ສໍາລັບ openSUSE ປະເພດດັ່ງຕໍ່ໄປນີ້:

zypper install rsstail

ຄໍາຖະແຫຼງທີ່ IF

ເປີດຖານຂໍ້ມູນແລະສ້າງໄຟລ໌ທີ່ເອີ້ນວ່າ rssget.sh ໂດຍການພິມຕໍ່ໄປນີ້:

sudo nano rssgetsh

ພາຍໃນບັນນາທິການ nano ໃສ່ຂໍ້ຄວາມຕໍ່ໄປນີ້:

#! / bin / bash
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml

ບັນທຶກໄຟລ໌ໂດຍການກົດ CTRL ແລະ O ແລະຫຼັງຈາກນັ້ນອອກໂດຍການກົດ CTRL ແລະ X.

ດໍາເນີນການ script ໂດຍການພິມຕໍ່ໄປນີ້:

sh rssgetsh

script ຈະສົ່ງລາຍຊື່ຂອງຫົວຂໍ້ຈາກ feed linux.about.com.

ມັນບໍ່ແມ່ນສະຄິບທີ່ເປັນປະໂຫຍດເກີນໄປເພາະວ່າມັນພຽງແຕ່ເອົາຫົວຂໍ້ອອກຈາກອາຫານ RSS ແຕ່ວ່າມັນຈະຊ່ວຍປະຢັດໃຫ້ມີເສັ້ນທາງໄປຫາຟີດະ RSS ຂອງ Linux.about.com.

ເປີດເອກະສານ rssget.sh ໃນ nano ອີກເທື່ອຫນຶ່ງແລະແກ້ໄຂໄຟລ໌ທີ່ຈະເບິ່ງຄືດັ່ງຕໍ່ໄປນີ້:

#! / bin / bash

ຖ້າ [$ 1 = "verbose"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // zaboutcom / 6 / o / m / linux_p2xml
fi

ດໍາເນີນການ script ອີກເທື່ອຫນຶ່ງໂດຍການພິມຕໍ່ໄປນີ້:

sh rssgetsh verbose

ເວລານີ້ອາຫານ RSS ກັບຄືນມາດ້ວຍຫົວຂໍ້, ການເຊື່ອມໂຍງແລະຄໍາອະທິບາຍ.

ໃຫ້ຂອງວິເຄາະ script ໃນນ້ອຍຂອງລາຍລະອຽດ:

#! / bin / bash ປາກົດຢູ່ໃນທຸກ script ທີ່ພວກເຮົາຂຽນ. ເສັ້ນຕໍ່ໄປໂດຍພື້ນຖານແລ້ວເບິ່ງຢູ່ໃນພາລາມິເຕີປ້ອນຂໍ້ມູນທໍາອິດທີ່ສະຫນອງໃຫ້ໂດຍຜູ້ໃຊ້ແລະປຽບທຽບກັບຄໍາວ່າ "verbose". ຖ້າພາລາມິເຕີປ້ອນຂໍ້ມູນແລະຄໍາວ່າ "verbose" ກົງກັບສາຍລະຫວ່າງ ນັ້ນ ແລະ ໄຟລ໌ ຈະຖືກລັນ.

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

ຂໍ້ບົກພ່ອງທີ່ສໍາຄັນອື່ນແມ່ນວ່າຖ້າທ່ານບໍ່ໃຫ້ຄໍາສັບ "verbose" ແລ້ວບໍ່ມີຫຍັງເກີດຂຶ້ນເລີຍ. ຕົວຢ່າງຖ້າທ່ານບໍ່ໃຫ້ຄໍາສັບ verbose script ຈະສົ່ງຄືນບັນຊີລາຍຊື່ຂອງຫົວຂໍ້.

ໃຊ້ nano ອີກເທື່ອຫນຶ່ງເພື່ອແກ້ໄຂໄຟລ໌ rssget.sh ແລະປັບປ່ຽນລະຫັດດັ່ງຕໍ່ໄປນີ້:

#! / bin / bash

ຖ້າ [$ 1 = "verbose"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // zaboutcom / 6 / o / m / linux_p2xml
ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi

ບັນທຶກໄຟລ໌ແລະດໍາເນີນການໂດຍການພິມດັ່ງຕໍ່ໄປນີ້:

sh rssgetsh verbose

ລາຍຊື່ຫົວຂໍ້, ຄໍາອະທິບາຍແລະການເຊື່ອມໂຍງຈະປາກົດຂຶ້ນ. ໃນປັດຈຸບັນດໍາເນີນການມັນອີກເທື່ອຫນຶ່ງດັ່ງຕໍ່ໄປນີ້:

sh rssgetsh titles

ເວລານີ້ພຽງແຕ່ລາຍຊື່ຂອງຫົວຂໍ້ປາກົດຂຶ້ນ.

ພາກສ່ວນພິເສດຂອງ script ແມ່ນຢູ່ໃນເສັ້ນ 4 ແລະນໍາສະເຫນີຄໍາ ອື່ນ . ໂດຍພື້ນຖານແລ້ວ script ໃນປັດຈຸບັນບອກຖ້າພາລາມິເຕີທໍາອິດແມ່ນຄໍາວ່າ "verbose" ໄດ້ຮັບຄໍາອະທິບາຍ, ການເຊື່ອມໂຍງແລະຫົວຂໍ້ສໍາລັບອາຫານ RSS ແຕ່ຖ້າພາລາມິເຕີທໍາອິດແມ່ນຫຍັງອີກພຽງແຕ່ໄດ້ຮັບລາຍຊື່.

script ໄດ້ຮັບການປັບປຸງເລັກນ້ອຍແຕ່ຍັງມີຂໍ້ບົກພ່ອງຢູ່. ຖ້າທ່ານບໍ່ເຂົ້າໄປໃນພາລາມິເຕີທ່ານກໍ່ຈະໄດ້ຮັບຂໍ້ຜິດພາດ. ເຖິງແມ່ນວ່າທ່ານຈະໃຫ້ພາລາມິເຕີ, ໂດຍເວົ້າວ່າທ່ານບໍ່ຕ້ອງການຄໍາເວົ້າທີ່ບໍ່ໄດ້ຫມາຍຄວາມວ່າທ່ານຕ້ອງການຫົວຂໍ້ເທົ່ານັ້ນ. ທ່ານອາດຈະໄດ້ຂຽນຄໍາເວົ້າທີ່ຜິດພາດໃນຕົວຢ່າງເຊັ່ນຫຼືທ່ານອາດຈະໄດ້ພິມສັດປີກທີ່ແນ່ນອນບໍ່ມີຄວາມຫມາຍ.

ກ່ອນທີ່ພວກເຮົາພະຍາຍາມແລະລຶບບັນຫາເຫຼົ່ານີ້ຂ້ອຍຕ້ອງການສະແດງໃຫ້ທ່ານເຫັນຄໍາສັ່ງເພີ່ມເຕີມທີ່ມີຄໍາສັ່ງ IF.

ແກ້ໄຂ script rssget.sh ຂອງທ່ານໃຫ້ເບິ່ງດັ່ງຕໍ່ໄປນີ້:

#! / bin / bash

ຖ້າ [$ 1 = "ທັງຫມົດ"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // zaboutcom / 6 / o / m / linux_p2xml
elif [$ 1 = "description"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-u http: // zaboutcom / 6 / o / m / linux_p2xml

ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi

ຂ້າພະເຈົ້າໄດ້ຕັດສິນໃຈທີ່ຈະກໍາຈັດຄໍາສັບທີ່ເວົ້າອອກມາແລະປ່ຽນແທນມັນດ້ວຍທຸກຢ່າງ. ນັ້ນບໍ່ແມ່ນສ່ວນສໍາຄັນ. script ຂ້າງເທິງນີ້ແນະນໍາ elif ຊຶ່ງເປັນວິທີສັ້ນຂອງການເວົ້າ ELSE ຖ້າ.

ຕອນນີ້ script ເຮັດວຽກດັ່ງຕໍ່ໄປນີ້. ຖ້າທ່ານດໍາເນີນການ sh rssget.sh ທັງຫມົດ ຫຼັງຈາກນັ້ນທ່ານຈະໄດ້ຮັບຄໍາອະທິບາຍ, ການເຊື່ອມໂຍງແລະຫົວຂໍ້. ຖ້າແທນທີ່ທ່ານພຽງແຕ່ດໍາເນີນການ sh rssget.sh ລາຍລະອຽດ ທ່ານພຽງແຕ່ຈະໄດ້ຮັບຫົວຂໍ້ແລະຄໍາອະທິບາຍ. ຖ້າທ່ານສະຫນອງຄໍາໃດກໍ່ຕາມທ່ານຈະໄດ້ຮັບລາຍຊື່.

ນີ້ແນະນໍາວິທີການທີ່ຈະມາເຖິງທັນທີດ້ວຍບັນຊີລາຍຊື່ຂອງເງື່ອນໄຂເງື່ອນໄຂ. ວິທີທາງເລືອກທີ່ເຮັດ ELIF ແມ່ນການນໍາໃຊ້ສິ່ງທີ່ຮູ້ຈັກເປັນຂໍ້ມູນ IF ທີ່ຖືກຊ້ອນກັນ.

ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງທີ່ສະແດງໃຫ້ເຫັນວ່າວິທີການເຮັດວຽກຂອງ IF ໄດ້ເຮັດວຽກຄືແນວໃດ:

#! / bin / bash

ຖ້າ [$ 2 = "aboutdotcom"]
ຫຼັງຈາກນັ້ນ,
ຖ້າ [$ 1 = "ທັງຫມົດ"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // zaboutcom / 6 / o / m / linux_p2xml
elif [$ 1 = "description"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-u http: // zaboutcom / 6 / o / m / linux_p2xml

ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi
ອື່ນ ໆ
ຖ້າ [$ 1 = "ທັງຫມົດ"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // lxercom / module / newswire / headlinesrss
elif [$ 1 = "description"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-u http: // lxercom / module / newswire / headlinesrss
ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi
fi

ຮູ້ສຶກບໍ່ເສຍຄ່າທີ່ຈະພິມທຸກສິ່ງທີ່ຢູ່ຖ້າທ່ານຕ້ອງການຫຼືຄັດລອກແລະວາງມັນເຂົ້າໃນໄຟ rssget.sh ຂອງທ່ານ.

ສະຄິບຂ້າງເທິງແນະນໍາພາລາມິເຕີທີ 2 ເຊິ່ງສາມາດເລືອກເອົາ "about.com" ຫຼື "lxer.com" ເປັນ RSS feed.

ເພື່ອດໍາເນີນການມັນໃຫ້ພິມໃນຕໍ່ໄປນີ້:

sh rssgetsh all aboutdotcom

ຫຼື

sh rssgetsh all lxer

ທ່ານແນ່ນອນວ່າທ່ານສາມາດທົດແທນທັງຫມົດໂດຍມີຄໍາອະທິບາຍຫຼືຫົວຂໍ້ເພື່ອສະຫນອງຄໍາອະທິບາຍຫຼືຊື່ພຽງແຕ່.

ໃນເບື້ອງຕົ້ນລະຫັດຂ້າງເທິງບອກວ່າຖ້າຕົວກໍານົດການທີສອງແມ່ນ aboutdotcom ແລ້ວເບິ່ງຄໍາສັ່ງທີສອງຖ້າເປັນຕົວດຽວກັນຈາກ script ອື່ນຖ້າ parameter ທີສອງແມ່ນ lxer ແລ້ວເບິ່ງໃນຄໍາສັ່ງພາຍໃນອີກຄັ້ງເພື່ອຕັດສິນໃຈວ່າຈະສະແດງຊື່, ຄໍາອະທິບາຍ ຫຼືທຸກສິ່ງທຸກຢ່າງ.

script ທີ່ຖືກສະຫນອງໃຫ້ເປັນຕົວຢ່າງຂອງຄໍາຖະແຫຼງທີ່ IF ທີ່ຊ້ອນຢູ່ແລະມີສິ່ງຫຼາຍຢ່າງທີ່ຜິດພາດກັບ script ນັ້ນມັນຈະໃຊ້ບົດຄວາມອື່ນເພື່ອອະທິບາຍໃຫ້ເຂົາເຈົ້າທັງຫມົດ. ບັນຫາຕົ້ນຕໍແມ່ນວ່າມັນບໍ່ສາມາດແກ້ໄຂໄດ້.

ຈິນຕະນາການວ່າທ່ານຕ້ອງການເພີ່ມອາຫານ RSS ອື່ນໆເຊັ່ນ: ຜູ້ໃຊ້ Linux ທຸກໆມື້ຫຼື Linux Today? script ຈະກາຍເປັນ huge ແລະຖ້າທ່ານຕັດສິນໃຈວ່າທ່ານຕ້ອງການຄໍາຖະແຫຼງທີ່ IF ພາຍໃນການປ່ຽນແປງທ່ານກໍ່ຈະຕ້ອງປ່ຽນແປງມັນຢູ່ຫຼາຍບ່ອນ.

ໃນຂະນະທີ່ມີເວລາແລະສະຖານທີ່ສໍາລັບບ່ອນທີ່ຢູ່ລຽບຖ້າພວກເຂົາຄວນຖືກໃຊ້ເລື້ອຍໆ. ປົກກະຕິແລ້ວມັນມີວິທີທີ່ຈະປັບລະຫັດໃຫມ່ຂອງທ່ານເພື່ອໃຫ້ທ່ານບໍ່ຈໍາເປັນຕ້ອງມີ IF ຢູ່ໃນທັງຫມົດ. ໃນບົດຂຽນໃນອະນາຄົດ, ຂ້າພະເຈົ້າຈະມາເຖິງເລື່ອງນີ້.

ຕອນນີ້ເບິ່ງຫາການແກ້ໄຂບັນຫາຂອງຜູ້ທີ່ເຂົ້າໄປໃນຕົວກໍານົດການ duff. ຕົວຢ່າງໃນສະຄິບຂ້າງເທິງຖ້າຜູ້ໃຊ້ເຂົ້າໃສ່ບາງສິ່ງບາງຢ່າງນອກເຫນືອຈາກ "aboutdotcom" ເປັນພາລາມິເຕີຄັ້ງທີສອງແລ້ວລາຍະການຂອງບົດຄວາມຈະປາກົດຈາກຟີດະ RSS ຈາກ LXER ໂດຍບໍ່ວ່າຜູ້ໃຊ້ຈະເຂົ້າຫລືບໍ່.

ນອກຈາກນັ້ນຖ້າຜູ້ໃຊ້ບໍ່ເຂົ້າ "ທັງຫມົດ" ຫລື "ຄໍາອະທິບາຍ" ເປັນພາລາມິເຕີຄັ້ງທໍາອິດແລ້ວຄ່າເລີ່ມຕົ້ນເປັນລາຍະການຫົວຂໍ້ທີ່ອາດຈະຫລືບໍ່ເປັນສິ່ງທີ່ຜູ້ໃຊ້ຕ້ອງການ

ເບິ່ງ script ຕໍ່ໄປນີ້ (ຫຼືສໍາເນົາແລະວາງມັນເຂົ້າໃນໄຟ rssget.sh ຂອງທ່ານ.

#! / bin / bash

ຖ້າ [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ຫຼັງຈາກນັ້ນ,
ຖ້າ [$ 1 = "ທັງຫມົດ"] || [$ 1 = "description"] || [$ 1 = "ຫົວຂໍ້"]
ຫຼັງຈາກນັ້ນ,
ຖ້າ [$ 2 = "aboutdotcom"]
ຫຼັງຈາກນັ້ນ,

ຖ້າ [$ 1 = "ທັງຫມົດ"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // zaboutcom / 6 / o / m / linux_p2xml
elif [$ 1 = "description"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-u http: // zaboutcom / 6 / o / m / linux_p2xml

ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi
ອື່ນ ໆ
ຖ້າ [$ 1 = "ທັງຫມົດ"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // lxercom / module / newswire / headlinesrss
elif [$ 1 = "description"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-u http: // lxercom / module / newswire / headlinesrss
ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi
fi
fi
fi

ສິ່ງທໍາອິດທີ່ຄວນສັງເກດແມ່ນວ່າຕອນນີ້ script ໄດ້ຮັບການຂະຫນາດໃຫຍ່ແລະທ່ານສາມາດເບິ່ງໄດ້ອຍ່າງລວດໄວວິທີການອອກຈາກການຄວບຄຸມ IF ທີ່ສົມບູນສາມາດກາຍເປັນ.

ນ້ອຍທີ່ສໍາຄັນໃນ script ນີ້ແມ່ນຄໍາສັ່ງ IF || ຄໍາຖະແຫຼງທີ THEN ສຸດເສັ້ນ 2 ແລະເສັ້ນ 4.

The || ຢືນສໍາລັບ OR. ດັ່ງນັ້ນເສັ້ນ ຖ້າ [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"] ກວດເບິ່ງວ່າຕົວກໍານົດການທີ 2 ແມ່ນເທົ່າໃດກັບ "aboutdotcom" ຫຼື "lxer". ຖ້າວ່າມັນບໍ່ແມ່ນຫຼັງຈາກນັ້ນຄໍາສັ່ງ IF ແມ່ນສໍາເລັດເພາະວ່າບໍ່ມີຄໍາບອກ ອື່ນ ສໍາລັບ IF ສ່ວນນອກ .

ເຊັ່ນດຽວກັນຢູ່ເສັ້ນ 4 ເສັ້ນ ຖ້າ [$ 1 = "ທັງຫມົດ"] || [$ 1 = "description"] || [$ 1 = "ຫົວຂໍ້"] ກວດເບິ່ງວ່າຕົວກໍານົດການທີ 1 ແມ່ນເທົ່າໃດ "ທັງຫມົດ" ຫຼື "ລາຍລະອຽດ" ຫຼື "ຫົວຂໍ້".

ໃນປັດຈຸບັນຖ້າຫາກວ່າຜູ້ໃຊ້ແລ່ນ sh rssget.sh ມັນຕົ້ນ, ເນີຍແຂງ ບໍ່ມີຫຍັງຖືກສົ່ງຄືນກ່ອນທີ່ພວກເຂົາຈະໄດ້ຮັບບັນຊີລາຍຊື່ຂອງຫົວຂໍ້ຈາກ LXER.

ກົງກັນຂ້າມຂອງ || ແມ່ນ &&. & & operator & stands for AND

ຂ້າພະເຈົ້າຈະເຮັດໃຫ້ສະຄິບເບິ່ງຫຼາຍກວ່າຄືກັບຝັນຮ້າຍແຕ່ວ່າມັນເຮັດໃຫ້ການກວດສອບສໍາຄັນທັງຫມົດເພື່ອໃຫ້ແນ່ໃຈວ່າຜູ້ໃຊ້ໄດ້ສະຫນອງ 2 ຕົວກໍານົດ.

#! / bin / bash

ຖ້າ [$ # -eq 2]
ຫຼັງຈາກນັ້ນ,

ຖ້າ [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ຫຼັງຈາກນັ້ນ,
ຖ້າ [$ 1 = "ທັງຫມົດ"] || [$ 1 = "description"] || [$ 1 = "ຫົວຂໍ້"]
ຫຼັງຈາກນັ້ນ,
ຖ້າ [$ 2 = "aboutdotcom"]
ຫຼັງຈາກນັ້ນ,

ຖ້າ [$ 1 = "ທັງຫມົດ"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // zaboutcom / 6 / o / m / linux_p2xml
elif [$ 1 = "description"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-u http: // zaboutcom / 6 / o / m / linux_p2xml

ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi
ອື່ນ ໆ
ຖ້າ [$ 1 = "ທັງຫມົດ"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-l-u http: // lxercom / module / newswire / headlinesrss
elif [$ 1 = "description"]
ຫຼັງຈາກນັ້ນ,
rsstail-d-u http: // lxercom / module / newswire / headlinesrss
ອື່ນ ໆ
rsstail -u http: // zaboutcom / 6 / o / m / linux_p2xml
fi
fi
fi
fi
fi

ພຽງແຕ່ນ້ອຍທີ່ມີພິເສດໃນສະຄິບທີ່ເປັນຄໍາສັ່ງ IF ພາຍນອກອີກເຊັ່ນ: ຖ້າ [$ # -eq 2] . ຖ້າທ່ານອ່ານບົດຄວາມກ່ຽວກັບຕົວກໍານົດການປ້ອນຂໍ້ມູນ, ທ່ານຈະຮູ້ວ່າ $ # ຈະສົ່ງຄືນເຖິງຈໍານວນຕົວກໍານົດການປ້ອນຂໍ້ມູນ. eq stands for equals ດັ່ງນັ້ນຄໍາຊີ້ແຈງ IF ກວດສອບວ່າຜູ້ໃຊ້ເຂົ້າມາ 2 ຕົວກໍານົດແລະຖ້າພວກເຂົາບໍ່ໄດ້ມັນອອກພຽງແຕ່ບໍ່ເຮັດຫຍັງ. (ໄມ່ໄດ້ເປັນມິດ).

ຂ້າພະເຈົ້າຮູ້ວ່າບົດຮຽນນີ້ໄດ້ຮັບການຂະຫນາດໃຫຍ່ຫຼາຍ. ມັນບໍ່ມີຫຼາຍຢ່າງທີ່ຈະກວມເອົາອາທິດນີ້ແຕ່ຂ້ອຍຕ້ອງການຊ່ວຍກະແຈກກະຈາຍກ່ອນທີ່ຈະສໍາເລັດ.

ຄໍາສັ່ງຫນຶ່ງສຸດທ້າຍທີ່ທ່ານຕ້ອງການຮຽນຮູ້ກ່ຽວກັບຄໍາສັ່ງເງື່ອນໄຂແມ່ນຄໍາສັ່ງ CASE.

#! / bin / bash


ຖ້າ [$ # -eq 2]
ຫຼັງຈາກນັ້ນ,
case $ 2 in
aboutdotcom)
ກໍລະນີ $ 1 ໃນ
ທັງຫມົດ)
rsstail-d-l -u zaboutcom / 6 / o / m / linux_p2xml
0
ລາຍລະອຽດ)
rsstail-d-u zaboutcom / 6 / o / m / linux_p2xml
0
ຫົວຂໍ້)
rsstail -u zaboutcom / 6 / o / m / linuxaboutcom / 6 / o / m / linux_p2xml
0
esac
0
lxer)
ກໍລະນີ $ 1 ໃນ
ທັງຫມົດ)
rsstail-d-l-u http: // lxercom / module / newswire / headlinesrss
0
ລາຍລະອຽດ)
rsstail-d-u http: // lxercom / module / newswire / headlinesrss
0
ຫົວຂໍ້)
rsstail-u http: // lxercom / module / newswire / headlinesrss
0
esac
0
esac
fi

ຄໍາຊີ້ແຈງໃນກໍລະນີແມ່ນວິທີການຂຽນທີ່ດີກ່ວາຖ້າມີຖ້າຫາກວ່າຖ້າອື່ນ.

ຕົວຢ່າງເຊັ່ນເຫດຜົນນີ້

IF fruit = bananas
ຫຼັງຈາກນັ້ນ, ນີ້
ຄົນຖ້າຫມາກໄມ້ = ຫມາກກ້ຽງ
ຫຼັງຈາກນັ້ນ, ນີ້
ຄົນຖ້າຫມາກໄມ້ = ຫມາກໄມ້
ຫຼັງຈາກນັ້ນ, ນີ້
END IF

ສາມາດໄດ້ຮັບການຂຽນຄືນໃຫມ່ເປັນ:

case fruit in
bananas)
ເຮັດສິ່ງນີ້
0
ຫມາກກ້ຽງ)
ເຮັດສິ່ງນີ້
0
grapes)
ເຮັດສິ່ງນີ້
0
esac

ໂດຍພື້ນຖານແລ້ວ, ລາຍການທໍາອິດຫຼັງຈາກກໍລະນີແມ່ນສິ່ງທີ່ທ່ານຈະປຽບທຽບ (ຫມາກໄມ້). ຫຼັງຈາກນັ້ນ, ແຕ່ລະລາຍການກ່ອນທີ່ວົງເລັບແມ່ນສິ່ງທີ່ທ່ານກໍາລັງປຽບທຽບແລະຖ້າມັນກົງກັບສາຍທີ່ຢູ່ຂ້າງຫນ້າ; ຈະໄດ້ຮັບການແລ່ນ. ລາຍງານກໍລະນີທີ່ຖືກຍົກເລີກດ້ວຍ esac ຍ້ອນກັບ (ເຊິ່ງເປັນກໍລະນີຍ້ອນກັບ).

ໃນສະຄິບ rssget.sh ກໍລະນີການໂຕ້ຖຽງເອົາບາງສິ່ງບາງຢ່າງທີ່ຮົ່ມທີ່ຫນ້າປະທັບໃຈແຕ່ກໍ່ບໍ່ມີການປັບປຸງມັນຢ່າງພຽງພໍ.

ເພື່ອປັບປຸງສະບັບທີ່ຂ້າພະເຈົ້າຈໍາເປັນຕ້ອງແນະນໍາທ່ານໃຫ້ຕົວແປ.

ເບິ່ງລະຫັດຕໍ່ໄປນີ້:

#! / bin / bash

lxer = "lxercom / module / newswire / headlinesrss"
aboutdotcom = "zaboutcom / 6 / o / m / linux_p2xml"
display = ""
url = ""

ຖ້າ [$ # -lt 2] || [$ # -gt 2]
ຫຼັງຈາກນັ້ນ,
echo "usage: rssgetsh [all | description | title] [aboutdotcom | lxer]"
ອອກຈາກ
fi

ກໍລະນີ $ 1 ໃນ
ທັງຫມົດ)
display = "-d -l-u"
0
ລາຍລະອຽດ)
display = "-d -u"
0
ຫົວຂໍ້)
display = "- u"
0
esac

case $ 2 in
aboutdotcom)
url = $ aboutdotcom
0
lxer)
url = $ lxer
0
esac
rsstail $ display url url

ຕົວແປແມ່ນກໍານົດໂດຍໃຫ້ມັນເປັນຊື່ແລະຫຼັງຈາກນັ້ນກໍາຫນົດຄ່າກັບມັນ. ໃນຕົວຢ່າງຂ້າງຕົ້ນດັ່ງຕໍ່ໄປນີ້ແມ່ນການມອບຫມາຍຕົວແທນ:

lxer = "lxercom / module / newswire / headlinesrss"
aboutdotcom = "zaboutcom / 6 / o / m / linux_p2xml"
display = ""
url = ""

script ສາມາດຈັດການໄດ້ທັນທີໂດຍໃຊ້ຕົວແປ. ຕົວຢ່າງເຊັ່ນແຕ່ລະພາລາມິຕິແມ່ນຈັດການແຍກຕ່າງຫາກແລະດັ່ງນັ້ນບໍ່ມີຂໍ້ມູນ IF ທີ່ຖືກຊ້ອນກັນ.

ຕົວກໍານົດການສະແດງແມ່ນຕັ້ງຢູ່ໃນປັດຈຸບັນຂຶ້ນຢູ່ກັບວ່າທ່ານເລືອກທັງຫມົດ, ຄໍາອະທິບາຍຫລືຊື່ແລະຕົວແປ url ຖືກຕັ້ງຄ່າເປັນຄ່າຂອງແປ້ນອ້ອມ ordotcom ຫຼືມູນຄ່າຂອງຕົວແປ lxer ຂຶ້ນຢູ່ກັບວ່າທ່ານເລືອກ aboutdotcom ຫຼື lxer.

ຄໍາສັ່ງ rsstail ໃນປັດຈຸບັນພຽງແຕ່ມີການນໍາໃຊ້ມູນຄ່າຂອງການສະແດງແລະ url ໃນການດໍາເນີນການຢ່າງຖືກຕ້ອງ.

ໃນຂະນະທີ່ຕົວແປແມ່ນກໍານົດໂດຍການໃຫ້ພວກເຂົາຊື່, ເພື່ອນໍາໃຊ້ຕົວຈິງແລ້ວພວກເຂົາຕ້ອງເອົາປ້າຍ $ ຢູ່ທາງຫນ້າຂອງພວກເຂົາ. ໃນຄໍາສັບຕ່າງໆອື່ນ, variable = value ກໍານົດຕົວແປກັບມູນຄ່າໃນຂະນະທີ່ $ variable ຫມາຍຄວາມວ່າໃຫ້ເນື້ອຫາຂອງຕົວແປ.

ຕໍ່ໄປນີ້ແມ່ນສະຄິບສຸດທ້າຍສໍາລັບບົດຮຽນນີ້.

#! / bin / bash

lxer = "lxercom / module / newswire / headlinesrss"
aboutdotcom = "zaboutcom / 6 / o / m / linux_p2xml"
dailylinuxuser = "http: // feedsfeedburnercom / eververylinuxuser / WLlg"
linuxtoday = "http: // feedproxygooglecom / linuxtoday / linux"
use = "usage: rssgetsh [all | description | title] [lxer | aboutdotcom | everydaylinuxuser | linuxtoday]"
display = ""
url = ""

ຖ້າ [$ # -lt 2] || [$ # -gt 2]
ຫຼັງຈາກນັ້ນ,
echo $ usage
ອອກຈາກ
fi

ກໍລະນີ $ 1 ໃນ
ທັງຫມົດ)
display = "-d -l-u"
0
ລາຍລະອຽດ)
display = "-d -u"
0
ຫົວຂໍ້)
display = "- u"
0
*)
echo $ usage
ອອກຈາກ
0
esac

case $ 2 in
aboutdotcom)
url = $ aboutdotcom
0
lxer)
url = $ lxer
0
linuxtoday)
url = $ linuxtoday
0
dailylinuxuser)
url = $ dailylinuxuser
0
*)
echo $ usage
ອອກຈາກ
esac

rsstail $ display url url

script ຂ້າງເທິງແນະນໍາ RSS feeds ຫຼາຍແລະມີການນໍາໃຊ້ການນໍາໃຊ້ທີ່ບອກຜູ້ໃຊ້ວ່າຈະໃຊ້ script ຖ້າພວກເຂົາບໍ່ໃສ່ 2 ຕົວແປຫຼືພວກເຂົາໃສ່ຕົວເລືອກບໍ່ຖືກຕ້ອງສໍາລັບຕົວແປ.

Summary

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

ນອກນັ້ນຍັງມີຫຼາຍທີ່ສາມາດເຮັດໄດ້ເພື່ອປັບປຸງສະຄິບຂ້າງເທິງແລະນີ້ຈະຖືກກວມເອົາໃນຄູ່ມືໃນອະນາຄົດດັ່ງທີ່ພວກເຮົາຄົ້ນຫາ loops, grep ແລະການສະແດງອອກເປັນປົກກະຕິ.

ກວດເບິ່ງວິທີການ (ການເລື່ອນລົງຜ່ານຫມວດຫມູ່ເພື່ອເບິ່ງລາຍະການຂອງບົດຄວາມ) ສ່ວນຂອງ l inux.about.com ເພື່ອຊອກຫາຄູ່ມືທີ່ເປັນປະໂຫຍດຫຼາຍຈາກ ການບູດສອງລະບົບ Windows ແລະ Ubuntu ໃນ ການຕັ້ງຄ່າເຄື່ອງ virtual ໂດຍນໍາໃຊ້ກ່ອງ GNOME .