สองบทความสุดท้ายเกี่ยวกับ BASH Shell ที่เราพูดถึงรายละเอียดตัวแปรได้รับการชื่นชมอย่างสูงจากผู้อ่านของเรา พวกเราในฐานะTecmint-Team มีความกระตือรือร้นอย่างยิ่งที่จะให้หัวข้อล่าสุด ทันสมัย และเกี่ยวข้องซึ่งครอบคลุมรายละเอียดแก่คุณ นอกจากนี้เรายังพยายามเข้าถึงมุมมองที่สำคัญของหัวข้อที่เกี่ยวข้องเสมอ
นี่คือบทความสุดท้ายเกี่ยวกับ Linux Variables ที่เราจะไปดูการแทนที่ตัวแปรและตัวแปรที่กำหนดไว้ใน Shell ก่อนปิดหัวข้อนี้
Bash ทำการแทนที่ตัวแปรก่อนที่คำสั่งจะถูกดำเนินการจริงๆ Linux Bash Shell ค้นหาเครื่องหมาย '$' ทั้งหมดก่อนดำเนินการคำสั่งและแทนที่ด้วยค่าของตัวแปร กระบวนการแทนที่ Bash Variable ดำเนินการเพียงครั้งเดียว ถ้าเรามีตัวแปรซ้อนกันล่ะ
หมายเหตุ :โดยตัวแปรที่ซ้อนกัน เราหมายถึง ตัวแปรที่ประกาศภายในตัวแปร ให้ดูสถานการณ์ข้างต้นในตัวอย่างด้านล่าง
ประกาศตัวแปรแบบอ่านอย่างเดียวและปฏิบัติการได้ดังนี้
[email protected]:~$ declare -rx Linux_best_website="www.tecmint.com"
ตรวจสอบค่าของตัวแปรที่เก็บไว้
[email protected]:~$ printf "%s" "$Linux_best_website" www.tecmint.com
ตอนนี้ประกาศตัวแปรอื่นซึ่งอีกครั้งเป็นแบบอ่านอย่างเดียวและปฏิบัติการได้
[email protected]:~$ declare -rx Linux_website="Linux_best_website"
ตอนนี้สถานการณ์คือ เราได้กำหนดสองตัวแปรแล้ว
'Linux_best_website' ซึ่งมีค่าเท่ากับ “www.tecmint.com”
และ 'Linux_website' ซึ่งค่าของมันคือ “Linux_best_website”
จะเกิดอะไรขึ้นหากเราเรียกใช้คำสั่งบรรทัดเดียวด้านล่าง
[email protected]:~$ printf "%s" "$Linux_website"
ก่อนอื่นควรแทนที่ตัวแปร ‘$Linux_website ' ด้วยค่า “Linux_best_website ” แล้วตามด้วย “$Linux_best_website ” เป็นตัวแปรอีกค่าหนึ่งซึ่งก็คือ “www.tecmint.com ” ดังนั้นผลลัพธ์สุดท้ายของการรันคำสั่งด้านล่างควรเป็น
[email protected]:~$ printf "%s" "$Linux_website" www.tecmint.com
แต่น่าเสียดาย นี่ไม่ใช่สถานการณ์ ผลลัพธ์ที่เราได้รับคือ Linux_best_website .
เหตุผล? ได้! Bash แทนที่ค่าของตัวแปรเพียงครั้งเดียว แล้วสคริปต์และโปรแกรมที่ซับซ้อนซึ่งเราจำเป็นต้องแทนที่ตัวแปรบ่อยครั้งและจำเป็นต้องแทนที่ตัวแปรมากกว่าหนึ่งครั้งล่ะ
นี่คือคำสั่ง 'eval ' ซึ่งทำงานเพิ่มเติมของการแทนที่ตัวแปรมากกว่าหนึ่งครั้งในสคริปต์ นี่คือตัวอย่างที่จะทำให้การทำงานทั้งหมดมีความใสดุจกระจก
ประกาศตัวแปร x ซึ่งมีค่าเท่ากับ 10 .
[email protected]:~/Desktop$ declare x=10
ตรวจสอบค่าตัวแปร x เราเพิ่งกำหนด
[email protected]:~/Desktop$ echo $yx x10
ประกาศตัวแปร y ซึ่งมีค่าเท่ากับ x .
[email protected]:~/Desktop$ declare y=x
ตรวจสอบค่าตัวแปร y เราเพิ่งกำหนด
[email protected]:~/Desktop$ echo $y x
นี่คือปัญหาของ BASH การแทนที่ตัวแปรแบบครั้งเดียว ซึ่งไม่ทำการแทนที่ตัวแปรรอบพิเศษ เรากำลังใช้ 'eval ' คำสั่งให้แก้ไขปัญหานี้
[email protected]:~/Desktop$ eval y=$x
ตอนนี้ตรวจสอบค่าของตัวแปร 'y '.
[email protected]:~/Desktop$ echo $y 10
เย่! ปัญหาได้รับการแก้ไขแล้วและ 'ประเมิน ' คำสั่งชนะการแข่งขัน :)
ไม่ต้องพูดถึง ‘ประเมิน ' คำสั่งมีประโยชน์มากในโปรแกรมสคริปต์ขนาดใหญ่และเป็นเครื่องมือที่มีประโยชน์มาก
ส่วนสุดท้ายแต่ไม่ท้ายสุดของโพสต์นี้คือตัวแปรที่กำหนดไว้ล่วงหน้าของ BASH ไม่! อย่าตื่นตระหนกเมื่อเห็นรายการนี้ คุณไม่จำเป็นต้องจำรายการทั้งหมดก่อนที่จะเริ่มเขียนสคริปต์ ยกเว้นบางส่วน ในกระบวนการเรียนรู้ เรากำลังนำเสนอรายการตัวแปรที่กำหนดไว้ล่วงหน้าของ BASH
ไม่ | ตัวแปรทุบตี | ผลลัพธ์ |
1 | auto_resume | ประมวลผลคำสั่งให้เสร็จสิ้นสำหรับงานที่หยุด |
2 | ทุบตี | เส้นทางของเชลล์ |
3 | BASH_ENV | แสดงชื่อไฟล์โปรไฟล์ |
4 | BASH_VERSION | แสดงเวอร์ชันของ Bash |
5 | BASH_VERSINFO | แสดงข้อมูลรุ่นโดยละเอียด |
6 | BASH_VERSINFO[0] | หมายเลขเวอร์ชันหลัก (รุ่น) |
7 | BASH_VERSINFO[1] | หมายเลขเวอร์ชันรอง (เวอร์ชัน) |
8 | BASH_VERSINFO[2] | ระดับแพตช์ |
9 | BASH_VERSINFO[3] | เวอร์ชันบิลด์ |
10 | BASH_VERSINFO[4] | สถานะการเปิดตัว (เช่น beta1 ) |
11 | BASH_VERSINFO[5] | ค่าของ MACHTYPE . |
12 | CDPATH | รายการไดเร็กทอรีคั่นด้วยเครื่องหมายทวิภาค |
13 | คอลัมน์ | จำนวนอักขระต่อบรรทัดในเอาต์พุตมาตรฐาน |
14 | EUID | ID ผู้ใช้ของผู้ใช้ปัจจุบัน |
15 | FCEDIT | ตัวแก้ไขข้อความเริ่มต้นสำหรับคำสั่ง fc |
16 | FUNCNAME | ชื่อความสนุก |
17 | กลุ่ม | กลุ่มที่ผู้ใช้เป็นสมาชิก |
18 | HISTFILE | ไฟล์ที่มีประวัติคำสั่ง |
19 | หน้าแรก | ชื่อของโฮมไดเร็กทอรีของคุณ |
20 | เส้น | จำนวนเส้นแนวนอนบนเอาต์พุตมาตรฐาน |
21 | จดหมาย | ชื่อของไฟล์ที่จะตรวจสอบอีเมลขาเข้า |
22 | OSTYPE | ชื่อระบบปฏิบัติการ |
23 | OLDPWD | ไดเร็กทอรีการทำงานก่อนหน้า |
24 | PWD | ไดเร็กทอรีการทำงานปัจจุบัน |
25 | สุ่ม | พิมพ์ตัวเลขสุ่ม |
26 | เชลล์ | เชลล์ที่ต้องการใช้ |
27 | รูปแบบเวลา | รูปแบบคำสั่งเวลา |
28 | UID | ID ของผู้ใช้ปัจจุบัน |
มีรายการ BASH Variable ที่กำหนดไว้ล่วงหน้าจำนวนมาก เราได้พยายามจัดทำรายการที่ใช้บ่อยที่สุด
นั่นคือทั้งหมดที่สำหรับตอนนี้. ฉันจะมาที่นี่อีกครั้งพร้อมกับบทความที่น่าสนใจอื่น คอยติดตามและเชื่อมต่อกับ TecMint . อย่าลืมให้ข้อเสนอแนะที่มีค่าของคุณในส่วนความคิดเห็นด้านล่าง