ຄວາມເຂົ້າໃຈແລະການຂຽນຕົວແປຂອງ Linux ໃນ Shell Scripting - Part 10
ພາສາຂຽນສະຄິບ Linux ແມ່ນຫົວຂໍ້ທີ່ຮ້ອນແຮງແລະສະ ເໝີ ໄປໃນອະນາຄົດ. ພາສາ Shell Scripting ແມ່ນມະຫັດສະຈັນແລະມັນງ່າຍທີ່ຈະເຮັດໂປແກຼມໃນພາສາຂຽນເຊັ່ນດຽວກັບພາສາອື່ນໆ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນຕ້ອງການຄວາມຮູ້ຢ່າງເລິກເຊິ່ງກ່ຽວກັບສິ່ງທີ່ພວກເຮົາ ກຳ ລັງເຮັດແລະຜົນໄດ້ຮັບທີ່ຄາດວ່າຈະເປັນແນວໃດ.
ທຸກໆບົດຂຽນທີ່ພວກເຮົາຂຽນໄວ້ ສຳ ລັບຜູ້ອ່ານຂອງພວກເຮົາແມ່ນໄດ້ຮັບການຕີລາຄາສູງລວມທັງບົດສຸດທ້າຍ“ ຄວາມເຂົ້າໃຈຂອງຕົວແປ Linux”. ພວກເຮົາ ກຳ ລັງເສີມຂະຫຍາຍບົດຂຽນສຸດທ້າຍໃຫ້ເປັນລະດັບ ໃໝ່.
ຄຸນລັກສະນະຂອງຕົວປ່ຽນແປງ
ແຕ່ລະຕົວແປໃນ Linux Environment ມີຕົວເລືອກທີ່ແນ່ນອນ, ແລະສິ່ງເຫຼົ່ານັ້ນເອີ້ນວ່າ 'ຄຸນລັກສະນະ'. ຕົວເລືອກຫລືຄຸນລັກສະນະເຫຼົ່ານີ້ສາມາດຫັນ ເປີດ ແລະ ປິດ , ເມື່ອຕ້ອງການຕາມສະຖານະການໂດຍໃຊ້ ຄຳ ສັ່ງ“ ປະກາດ”.
ຕົວຢ່າງຂອງຄຸນລັກສະນະຂອງຕົວແປ ກຳ ລັງໃຊ້ຕົວປ່ຽນສະຫຼັບເວົ້າ ‘ -i ‘ ເຊິ່ງຈະເປີດຄຸນລັກສະນະຂອງຕົວເລກ ສຳ ລັບຕົວແປທີ່ກົງກັນ. ເຖິງແມ່ນວ່າຄ່າທີ່ບໍ່ແມ່ນຕົວເລກຖືກສົ່ງຜ່ານເພື່ອປ່ຽນ ' -i ' ມັນຈະບໍ່ຖິ້ມຂໍ້ຜິດພາດແລະຜົນໄດ້ຮັບ ' 0 ເປັນການຕີຄວາມ ໝາຍ ແບບເຕັມສ່ວນ. ໃນທີ່ນີ້ມັນຈະແຈ້ງຂື້ນຈາກຕົວຢ່າງຂ້າງລຸ່ມນີ້.
ປະກາດຕົວປ່ຽນຕົວແປ, ໃບບິນ = 121
[email :~$ declare -i bill=121
Printf ມູນຄ່າຂອງໃບບິນທີ່ມີຕົວປ່ຽນແປງ.
[email :~$ printf "%d\n" "$bill" 121
ໃຫ້ຄ່າຕົວແປເປັນເຊືອກ. ບັນຊີລາຍການຕົວແປໄດ້ຖືກປະກາດແລ້ວ, ບໍ່ ຈຳ ເປັນຕ້ອງປະກາດເປັນຄັ້ງທີສອງ. ພຽງແຕ່ປ່ຽນຄຸນຄ່າຂອງຕົວປ່ຽນເປັນ.
[email :~$ bill=tecmint
ໃນປັດຈຸບັນ, ອີກເທື່ອຫນຶ່ງ printf ມູນຄ່າຂອງໃບບິນປ່ຽນແປງໄດ້.
[email :~$ printf "%d\n" "$bill" 0
ແຈ້ງການ ' 0 ທີ່ຢູ່ຂໍ້ຄວາມຜິດພາດ.
[email :~$ declare -p bill declare -i bill="121"
ນີ້, ປຸ່ມ -p (ຢືນ ສຳ ລັບການພິມ) ມາເພື່ອການກູ້ໄພ.
ເພື່ອປ່ຽນ ປິດ ຄຸນລັກສະນະຂອງຕົວປ່ຽນແປງສິ່ງທີ່ພວກເຮົາຕ້ອງການທັງ ໝົດ ແມ່ນການໃສ່ເຄື່ອງ ໝາຍ + ( ບວກ ) ກ່ອນການສະຫຼັບ. ນີ້ມັນຈະແຈ້ງກວ່າຈາກຕົວຢ່າງຂ້າງລຸ່ມນີ້.
ສັບປ່ຽນ ປິດ ຄຸນລັກສະນະເລກເຕັມ ສຳ ລັບຕົວແປຂ້າງເທິງ.
[email :~$ declare +i bill
ກວດສອບຄຸນຄ່າຂອງຕົວແປ.
[email :~$ printf "%d\n" "$bill" bash: printf: bill: invalid number 0
ດຽວນີ້ພິມຄ່າຂອງຕົວປ່ຽນໂດຍໃຊ້ສາຍສະຫຼັບ.
[email :~$ printf "%s\n" "$bill" tecmint
ນີ້ຢູ່ໃນຕົວຢ່າງຂ້າງເທິງ, bash ບໍ່ສາມາດຕັດສິນຄ່າທີ່ບໍ່ແມ່ນຕົວເລກເປັນຂໍ້ຜິດພາດ, ເຖິງຢ່າງໃດກໍ່ຕາມ printf ແມ່ນການຕີຄວາມ ໝາຍ, ສິ່ງທີ່ອາດຈະເປັນຕົວເລກແລະສິ່ງທີ່ບໍ່ສາມາດເປັນ.
ຕົວອ່ານເທົ່ານັ້ນ
ທ່ານອາດຈະເຄີຍໄດ້ຍິນພຽງແຕ່ຄວາມ ຈຳ (ພຽງແຕ່ ROM ), ແຕ່ວ່າຕົວປ່ຽນເທົ່ານັ້ນແມ່ນຫຍັງ? ມັນມີຄວາມຄ້າຍຄືກັນກັບ ROM ບໍ?
ຕົວອ່ານທີ່ດີເທົ່ານັ້ນເຊັ່ນຄວາມ ຈຳ ອ່ານເທົ່ານັ້ນແມ່ນສິ່ງທີ່ຄຸນຄ່າຂອງສິ່ງທີ່ບໍ່ສາມາດປ່ຽນແປງໄດ້ເມື່ອມັນຖືກມອບ ໝາຍ. ເພາະສະນັ້ນມັນຖືກເອີ້ນວ່າອ່ານເທົ່ານັ້ນ. ທ່ານບໍ່ສາມາດຂຽນ, ແກ້ໄຂຫລືດັດແປງຄ່າ ໃໝ່ ສຳ ລັບຕົວແປນັ້ນ. ນີ້ແມ່ນຕົວຢ່າງທີ່ໃຊ້ຕົວຢ່າງ.
ຕັດສິນໃຈອ່ານຊື່ສຽງເທົ່ານັ້ນ ( -r ) ຊື່ຕົວແປ, ມູນຄ່າຂອງມັນແມ່ນ“ linux-console.net”.
[email :~$ declare -r name="linux-console.net"
Printf ມູນຄ່າຂອງຕົວປ່ຽນແປງປະກາດຂ້າງເທິງ.
[email :~$ printf "%s\n" "$name" linux-console.net
ພະຍາຍາມປ່ຽນຄຸນຄ່າຂອງຕົວແປ.
[email :~$ declare -r name="Avishek" bash: declare: name: readonly variable
ດັ່ງທີ່ໄດ້ກ່າວມາຂ້າງເທິງຄຸນລັກສະນະຂອງຕົວແປທີ່ສາມາດອ່ານໄດ້ພຽງແຕ່ສາມາດປ່ຽນແປງໄດ້ໂດຍໃຊ້ເຄື່ອງ ໝາຍ“ + ‘.
ການສົ່ງອອກຕົວແປໃນ Linux
ຕົວປ່ຽນຫອຍທັງ ໝົດ ທີ່ປະກາດໃນສະຄິບແກະແມ່ນສາມາດໃຊ້ໄດ້ຈົນກວ່າສະຄິບຈະແລ່ນ. ພາຍນອກຂອງຕົວແປຕົວແປຈາກຕົວອັກສອນບໍ່ມີ. ຂັ້ນຕອນການສ້າງຕົວແປທີ່ມີຢູ່ນອກສະຄິບເອີ້ນວ່າການສົ່ງອອກຕົວແປ.
ຕົວແປສາມາດຖືກສົ່ງອອກນອກຫອຍໂດຍໃຊ້ສະຫວິດ ປະກາດ -x (ສົ່ງອອກ) ເຊິ່ງຮັບຮູ້ຫອຍສິ່ງທີ່ທ່ານຕ້ອງການສົ່ງອອກ. ຕົວປ່ຽນແປງການສົ່ງອອກປະກາດສາມາດໃຊ້ເປັນ.
[email :~$ declare -x variable=”Constant_Value”
ການປ່ຽນແປງທັງ ໝົດ ທີ່ປ່ຽນໄປໃນຕົວປ່ຽນແປງໃນຂະນະທີ່ສະຄິບທີ່ ກຳ ລັງແລ່ນຢູ່, ຈະສູນເສຍເມື່ອຕົວແປຖືກສົ່ງອອກນອກສະຄິບ ຕົວແປການສົ່ງອອກແມ່ນມີຄວາມ ສຳ ຄັນຫຼາຍໃນການແກະສະຫຼັກແກະ.
ພວກເຮົາຕ້ອງການຕົວແປທີ່ຄວນອ່ານເທົ່ານັ້ນແລະມີຢູ່ນອກສະຄິບ, ພວກເຮົາຕ້ອງໃຊ້ຕົວປ່ຽນ -r ແລະປ່ຽນ -x ພ້ອມໆກັນ.
[email :~$ declare -rx variable=”Constant_Value”
ຕົວແປສິ່ງແວດລ້ອມ
ຕົວແປຕ່າງໆທີ່ຖືກແບ່ງປັນລະຫວ່າງໂປແກຼມແລະໂປແກຼມທີ່ປະຕິບັດພວກມັນ. ຕົວແປສິ່ງແວດລ້ອມສາມາດຖືກສົ່ງອອກແຕ່ຄຸນລັກສະນະບໍ່ສາມາດຖືກມອບ ໝາຍ ໃຫ້.
ເຂົ້າໃຈທິດສະດີຂ້າງເທິງໃນພາກປະຕິບັດຕົວຈິງ. ນີ້ພວກເຮົາມີສອງສະຄິບ 0.sh ແລະ 1.sh .
# 0.sh #!/bin/bash declare -rx name=Tecmint bash 0.sh exit 0
ແລະບົດທີສອງແມ່ນ.
# 1.sh #!/bin/bash printf "%s\n" "$name" name=linux-console.net printf "%s\n" "$name" exit 0
ນີ້ແມ່ນສິ່ງທີ່ ກຳ ລັງເກີດຂື້ນ, ແມ່ນຕົວແປ (ຊື່) ຖືກປະກາດວ່າເປັນພຽງແຕ່ອ່ານແລະສົ່ງອອກແລະທັນທີຫຼັງຈາກທີ່ຂຽນບົດທີສອງນັ້ນ.
ສະຄິບທີສອງພຽງແຕ່ພິມຕົວແປຈາກຕົວອັກສອນ ທຳ ອິດທີ່ຖືກສົ່ງອອກໃນ ຄຳ ສັ່ງ printf ທຳ ອິດ. ໃນ ຄຳ ຖະແຫຼງການ printf ທີສອງມັນສະແດງໃຫ້ເຫັນຄ່າ ໃໝ່ ທີ່ຖືກມອບ ໝາຍ ໃຫ້ຕົວປ່ຽນແປງ ' ຊື່ '.
ບໍ່ ຈຳ ເປັນຕ້ອງກັງວົນ, ວ່າຕົວແປໄດ້ຖືກອ່ານເທົ່ານັ້ນ, ມັນຈະຖືກຈັດສັນ ໃໝ່ ແນວໃດ. ທ່ານຈື່ບໍ່ໄດ້ວ່າ "ການປ່ຽນແປງທັງ ໝົດ ທີ່ປ່ຽນແປງໃນຂະນະທີ່ສະຄິບທີ່ ກຳ ລັງແລ່ນຢູ່ຈະຫາຍໄປເມື່ອຕົວແປຖືກສົ່ງອອກນອກສະຄິບ."
ຄຳ ສັ່ງ ປະກາດ ອະນຸຍາດໃຫ້ປ່ຽນທັງ ໝົດ ດ້ານລຸ່ມພ້ອມກັບການປະສົມປະສານຂອງມັນ.
<
ດຽວນີ້ ໝົດ ແລ້ວ. ໃນບົດຄວາມຕໍ່ໄປພວກເຮົາຈະໄດ້ສົນທະນາກ່ຽວກັບວິທີການປ່ຽນແທນຕົວປ່ຽນແປງໂດຍໃຊ້ ຄຳ ສັ່ງ ‘ eval ’ ແລະຕົວແປທີ່ໄດ້ ກຳ ນົດໄວ້ແລ້ວໃນ bash ກ່ອນທີ່ຈະປິດຫົວຂໍ້ນີ້. ຫວັງວ່າທ່ານປະຊາຊົນມີຄວາມສຸກກັບການເດີນທາງຂອງທ່ານໄປສູ່ຄວາມເລິກເຊິ່ງຂອງການຂຽນອັກສອນ. ຈົນກ່ວານັ້ນຈະຕິດຕາມແລະເຊື່ອມຕໍ່ກັບ linux-console.net.