ຕົວປ່ຽນຕົວປ່ຽນ Nested ແລະຕົວປ່ຽນແປງ BASH ທີ່ ກຳ ນົດໄວ້ໃນ Linux - ພາກທີ 11


ສອງບົດຂຽນສຸດທ້າຍກ່ຽວກັບ BASH Shell, ເຊິ່ງພວກເຮົາໄດ້ສົນທະນາຕົວແປຕ່າງໆໃນລາຍລະອຽດໄດ້ຮັບການຕີລາຄາສູງໃນ ໝູ່ ຜູ້ອ່ານຂອງພວກເຮົາ. ພວກເຮົາໃນຂະນະທີ່ Tecmint-Team ມີຄວາມກະຕືລືລົ້ນທີ່ຈະໃຫ້ທ່ານມີຫົວຂໍ້ຂ່າວຫຼ້າສຸດ, ທັນສະ ໄໝ ແລະຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງທີ່ໄດ້ລົງລາຍລະອຽດ. ຍິ່ງໄປກວ່ານັ້ນພວກເຮົາພະຍາຍາມ ສຳ ພັດກັບທັດສະນະທີ່ ສຳ ຄັນຂອງຫົວຂໍ້ທີ່ສອດຄ້ອງກັນ.

ນີ້ແມ່ນບົດຂຽນສຸດທ້າຍກ່ຽວກັບ Linux Variables ເຊິ່ງພວກເຮົາຈະໄປເບິ່ງການປ່ຽນແທນຕົວປ່ຽນແປງແລະຕົວປ່ຽນແປງທີ່ ກຳ ນົດໄວ້ໃນ Shell ກ່ອນທີ່ຈະປິດຫົວຂໍ້ນີ້.

Bash ປະຕິບັດຕົວປ່ຽນຕົວແປກ່ອນທີ່ ຄຳ ສັ່ງຈະຖືກປະຕິບັດແທ້ໆ. Linux Bash Shell ຄົ້ນຫາທຸກອາການ ‘$’ ກ່ອນທີ່ຈະປະຕິບັດ ຄຳ ສັ່ງແລະປ່ຽນແທນດ້ວຍຄ່າຂອງຕົວປ່ຽນ. ຂະບວນການຂອງການປ່ຽນແທນ Var Variable ແມ່ນປະຕິບັດພຽງແຕ່ຄັ້ງດຽວ. ຈະເປັນແນວໃດຖ້າພວກເຮົາມີຕົວແປຢູ່ໃນຕົວແປ?

ໝາຍ ເຫດ: ໂດຍຕົວແປທີ່ເຮົາ ກຳ ນົດ ໝາຍ ຄວາມວ່າຕົວແປທີ່ຖືກປະກາດພາຍໃນຕົວແປ. ສາມາດເຮັດໃຫ້ເບິ່ງສະຖານະການຂ້າງເທິງໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້.

ປະກາດຕົວແປທີ່ອ່ານເທົ່ານັ້ນແລະສາມາດປະຕິບັດໄດ້ດັ່ງລຸ່ມນີ້.

[email :~$ declare -rx Linux_best_website="linux-console.net"

ກວດສອບມູນຄ່າຂອງຕົວແປທີ່ເກັບໄວ້.

[email :~$ printf "%s" "$Linux_best_website" 

linux-console.net

ຕອນນີ້ປະກາດຕົວປ່ຽນ ໃໝ່ ອີກຄັ້ງ ໜຶ່ງ ທີ່ອ່ານເທົ່ານັ້ນແລະສາມາດປະຕິບັດໄດ້.

[email :~$ declare -rx Linux_website="Linux_best_website"

ດຽວນີ້ສະຖານະການແມ່ນ, ພວກເຮົາໄດ້ ກຳ ນົດສອງຕົວແປ.

'Linux_best_website', ມູນຄ່າຂອງມັນແມ່ນ "linux-console.net"
ແລະ, 'Linux_website', ມູນຄ່າຂອງມັນແມ່ນ“ Linux_best_website”

ມັນຈະເປັນຜົນແນວໃດ, ຖ້າພວກເຮົາ ດຳ ເນີນ ຄຳ ສັ່ງເສັ້ນດຽວຕໍ່ໄປນີ້?

[email :~$ printf "%s" "$Linux_website"

ມັນຄວນປ່ຽນແທນຕົວແປ ' $Linux_website ', ດ້ວຍຄ່າ“ Linux_best_website ” ແລະຫຼັງຈາກນັ້ນ“ $Linux_best_website ” ແມ່ນຕົວປ່ຽນ ໃໝ່ ອີກຄ່າຂອງ ເຊິ່ງແມ່ນ " linux-console.net ". ດັ່ງນັ້ນຜົນໄດ້ຮັບສຸດທ້າຍຂອງການແລ່ນ ຄຳ ສັ່ງຕໍ່ໄປນີ້ຄວນຈະເປັນ.

[email :~$ printf "%s" "$Linux_website" 

linux-console.net

ແຕ່ໂຊກບໍ່ດີ, ນີ້ບໍ່ແມ່ນສະຖານະການ, ຜົນຜະລິດທີ່ພວກເຮົາ ກຳ ລັງໄດ້ຮັບແມ່ນ Linux_best_website .

ເຫດຜົນ? ຢື! Bash ແທນຄ່າຂອງຕົວປ່ຽນເທົ່ານັ້ນ. ຈະເປັນແນວໃດກ່ຽວກັບສະຄິບທີ່ສັບສົນແລະໂປແກຼມທີ່ພວກເຮົາຕ້ອງການປ່ຽນແທນຕົວປ່ຽນແປງເລື້ອຍໆພ້ອມທັງຕ້ອງການປ່ຽນແທນຕົວແປຫຼາຍກ່ວາ ໜຶ່ງ ຄັ້ງ?

ນີ້ແມ່ນ ຄຳ ສັ່ງ ' ຍົກເວັ້ນ ເຊິ່ງປະຕິບັດວຽກງານເພີ່ມເຕີມຂອງຕົວປ່ຽນຕົວປ່ຽນແປງຫຼາຍກວ່າ ໜຶ່ງ ຄັ້ງໃນບົດຂຽນ. ນີ້ແມ່ນຕົວຢ່າງ ໜຶ່ງ ທີ່ເຮັດໃຫ້ການເຮັດວຽກທັງ ໝົດ ມີຄວາມຊັດເຈນຄືກັບແກ້ວ.

ປະກາດຕົວປ່ຽນແປງ x , ມູນຄ່າຂອງມັນແມ່ນ 10 .

[email :~/Desktop$ declare x=10

ກວດເບິ່ງມູນຄ່າຂອງຕົວປ່ຽນແປງ x , ພວກເຮົາພຽງແຕ່ໄດ້ ກຳ ນົດ.

[email :~/Desktop$ echo $yx

x10

ປະກາດຕົວປ່ຽນແປງ y , ມູນຄ່າຂອງມັນແມ່ນ x .

[email :~/Desktop$ declare y=x

ກວດເບິ່ງມູນຄ່າຂອງຕົວປ່ຽນແປງ y , ພວກເຮົາພຽງແຕ່ໄດ້ ກຳ ນົດ.

[email :~/Desktop$ echo $y 

x

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

[email :~/Desktop$ eval y=$x

ດຽວນີ້ກວດເບິ່ງຄຸນຄ່າຂອງຕົວແປ ' y '.

[email :~/Desktop$ echo $y 

10

ຮືຮືຮື! ປະເດັນດັ່ງກ່າວຖືກແກ້ໄຂແລ້ວແລະ ຄຳ ສັ່ງ 'eval' ຊະນະການແຂ່ງຂັນ :)

ບໍ່ໄດ້ກ່າວເຖິງ, ຄຳ ສັ່ງທີ່ ຍົກສູງ ມີປະໂຫຍດຫຼາຍໃນໂປແກຼມສະຄິບທີ່ໃຫຍ່ແລະເປັນເຄື່ອງມືທີ່ໃຊ້ໄດ້ງ່າຍ.

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

ມີບັນຊີລາຍຊື່ທີ່ໃຫຍ່ຂອງຕົວປ່ຽນແປງ BASH ທີ່ ກຳ ນົດໄວ້. ພວກເຮົາໄດ້ພະຍາຍາມຜະລິດບັນຊີລາຍຊື່ທີ່ຖືກ ນຳ ໃຊ້ເລື້ອຍໆ.

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