Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

Bash ให้คุณจับคู่ข้อความทั้งสตริงกับตัวแปรเดียว ทำให้การใช้งานและการเขียนสคริปต์ง่ายขึ้น มันทำงานอย่างไรและคุณจะใช้มันอย่างไร? มาหาคำตอบกัน

ตัวแปรคืออะไร

ตัวแปรคือชื่อที่จำง่ายซึ่งสามารถมีค่าตัวอักษรและตัวเลขต่างกันได้ มีประโยชน์เพราะอนุญาตให้ใช้ฟังก์ชันเดียวกันกับค่าต่างๆ ได้โดยไม่ต้องเขียนสคริปต์/โค้ดใหม่ นอกจากนี้ยังทำให้การเขียนสคริปต์/ชิ้นส่วนของโค้ดเป็นเรื่องง่าย เนื่องจากแทนที่จะจัดการกับค่าแต่ละรายการ คุณสามารถใช้ชื่อเดียวกันสำหรับค่าทั้งหมดได้

ตัวแปรเรียลไทม์

Bash อนุญาตให้ใช้ตัวแปรได้ คุณสามารถสร้างตัวแปรได้ทันทีและนำมาใช้ใหม่ระหว่างเซสชัน Bash ปัจจุบันของคุณ สิ่งเหล่านี้สามารถช่วยคุณใช้ Bash ได้หลายวิธี และจะหายไปหลังจากเซสชันปัจจุบันสิ้นสุดลง

ตัวอย่างเช่น สมมติว่าคุณกำลังเข้าชมเว็บไซต์จำนวนมาก คุณอาจจะทำวิจัยหรือขูดข้อมูล คุณสามารถสร้างตัวแปรต่อไปนี้:

sitea=https://www.maketecheasier.com
ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

หลังจากนั้น หากคุณต้องการเยี่ยมชมไซต์ของเราด้วย Firefox คุณสามารถพิมพ์:

firefox $sitea
ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

ง่ายกว่ามาก - และอ่านง่ายขึ้น $sitea ตัวแปรจะยังคงจับคู่กับไซต์จนกว่าคุณจะเปลี่ยนเนื้อหาด้วยตนเองหรือสิ้นสุดเซสชัน Bash และแน่นอน คุณสามารถสร้างตัวแปรเพิ่มเติม เช่น siteb , sitec และ sited .

เมื่อตั้งค่าตัวแปรใหม่ คุณสามารถใช้ชื่อใดก็ได้ที่คุณต้องการและจัดเก็บสตริงที่เป็นตัวอักษรและตัวเลขคละกันไว้ข้างใน อย่างไรก็ตาม โปรดทราบว่าโดยค่าเริ่มต้นจะเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนั้น $sitea จะไม่เหมือนกับ $SiteA . นอกจากนี้ โปรดทราบว่าคุณควรใช้เครื่องหมายคำพูดเมื่อจัดเก็บสตริงที่มีอักขระพิเศษอยู่ภายใน (รวมถึงการเว้นวรรค)

ตัวแปรในสคริปต์

ตัวแปรใน Bash มีประโยชน์มากกว่าเมื่อเขียนสคริปต์ เนื่องจากอนุญาตให้คุณเขียนสคริปต์เดียว ซึ่งสามารถทำซ้ำผ่านสตริงต่างๆ หรือดำเนินการกับข้อมูลที่กำหนดเองได้ สมมติว่าคุณกำลังเขียนสคริปต์ที่ทุกคนสามารถใช้บนคอมพิวเตอร์ได้ แต่ในแต่ละครั้งจะแสดงคำทักทายในแบบของคุณ หากไม่มีตัวแปร คุณจะต้องเขียนสคริปต์เวอร์ชันอื่นสำหรับผู้ใช้แต่ละคน ด้วยตัวแปร คุณจะคงสคริปต์ไว้เหมือนเดิมและเปลี่ยนชื่อของผู้ใช้เท่านั้น

สคริปต์ดังกล่าวจะมีลักษณะดังนี้:

#!/bin/bash
username=Odysseas
echo $username
ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

ตัวอย่างข้างต้นอาจดูเหมือนซ้ำซาก อย่างไรก็ตาม เมื่อความซับซ้อนของโค้ดเพิ่มขึ้น ตัวแปรจะกลายเป็นสิ่งที่ขาดไม่ได้ สคริปต์อาจมีความยาวหลายร้อยหรือหลายพันบรรทัดและมีชื่อผู้ใช้อยู่ในจุดต่างๆ เพื่อให้เข้าใจมากขึ้น ให้พิจารณาสคริปต์ที่แตกต่างออกไปเล็กน้อยต่อไปนี้:

#!/bin/bash username=Linus
echo Hello $username. This is a simple script I wrote that will repeat your name - that is, $username - often as an actual example of how to use Bash variables. I hope it will make it easier to understand how to use variables to improve your Bash workflow, $username. In this case, the variable username is mapped to your name. Whenever Bash runs into it, it replaces it with $username.
ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

สคริปต์ข้างต้นจะใช้ชื่อที่กำหนดเป็น username ตัวแปรเพื่อทำให้ข้อความสมบูรณ์ หากใช้ชื่อผู้ใช้จริง คุณต้องพิมพ์สี่ครั้ง จากนั้นทำเช่นเดียวกันสำหรับผู้ใช้รายถัดไป และอีกสี่ครั้งสำหรับครั้งต่อไป ครั้งแล้วครั้งเล่า. โดยการกำหนดให้กับตัวแปร คุณจะต้องเปลี่ยนเพียงครั้งเดียวสำหรับผู้ใช้แต่ละราย และการกล่าวถึงชื่อผู้ใช้ในข้อความทุกครั้งจะได้รับการอัปเดต

ตัวแปรและนามแฝงของ Bash ถาวร

เราเห็นว่าคุณสามารถตั้งค่าตัวแปรชั่วคราวได้อย่างไร และคุณสามารถรวมตัวแปรเหล่านี้ไว้ในสคริปต์ของคุณเองได้อย่างไร เป็นไปได้ไหมที่จะตั้งค่าตัวแปรอย่างถาวรใน Bash? คำตอบคือ "ใช่!" ที่ยิ่งใหญ่ และคุณต้องแก้ไขไฟล์เดียวเท่านั้น:“~/.bashrc”.

เปิดไฟล์ “~/.bashrc” ในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ เนื่องจากฉันชอบนาโน ฉันจึงใช้:

nano ~/.bashrc
ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

เราขอแนะนำให้คุณเริ่มต้นด้วยการทดสอบโดยเพิ่มตัวแปรเพียงตัวเดียว เพื่อที่คุณจะได้รู้ว่าต้องดูที่ไหนหากกระบวนการนี้ใช้ไม่ได้ผล ย้ายไปที่ท้ายไฟล์และเพิ่มตัวแปรในบรรทัดใหม่ ตัวอย่างเช่น ฉันตั้งค่าตัวแปรสำหรับชื่อของฉันเป็น:

myname="Odysseas Kourafalos"
ตัวแปร Bash คืออะไรและคุณจะใช้งานได้อย่างไร?

บันทึกไฟล์ของคุณและออกจากตัวแก้ไข การปรับแต่งจะไม่มีผลทันที ป้อนข้อมูลต่อไปนี้ในเทอร์มินัลของคุณเพื่อให้มีผล:

source ~/.bashrc

ตอนนี้คุณสามารถใช้ประโยชน์จากตัวแปรที่ตั้งค่าใหม่ในเซสชัน Bash ของคุณ:

echo $myname

คุณสามารถตั้งค่าตัวแปรได้มากเท่าที่คุณต้องการและทำให้การผจญภัยในแต่ละวันของคุณใน Bash ง่ายขึ้นมาก

สำหรับการเพิ่มประสิทธิภาพการทำงานเป็นพิเศษ ก็ยังคุ้มค่าที่จะตั้งค่าตัวแปรประเภทอื่น:ชื่อแทน ต่างจากตัวแปรทั่วไปซึ่งถูกแมปกับข้อมูลที่คุณสามารถใช้ในคำสั่ง นามแฝงจะถูกใช้แทนคำสั่งจริง

เช่นเดียวกับที่คุณสามารถใช้ตัวแปรที่จำง่ายเพื่อเก็บสตริงข้อความยาวๆ คุณสามารถใช้นามแฝงเป็นทางเลือกที่ง่ายสำหรับคำสั่งที่ซับซ้อน คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ได้ที่นี่ ซึ่งเราจะเปลี่ยนคำสั่งบีบอัด 7zip ทั้งหมดให้เป็นนามแฝงสองอักขระ

หมายเหตุสุดท้าย แม้ว่าคุณจะตั้งค่าตัวแปรใน .bashrc อย่างถาวร คุณยังสามารถกำหนดค่าอื่นให้กับตัวแปรได้ชั่วคราวดังที่เราเห็นก่อนหน้านี้ ตัวแปรจะแสดงเนื้อหาใหม่จนกว่าเซสชัน Bash ปัจจุบันจะสิ้นสุดลง (หลังจากออกจากระบบหรือรีสตาร์ท) หรือคุณรีซอร์สไฟล์ .bashrc