Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

ตัวแปรในสคริปต์ทุบตี/เชลล์และวิธีใช้งาน [บทช่วยสอน]

บทความนี้จะแสดงวิธีใช้ตัวแปรในสคริปต์ Bash และ Shell ใน Linux

ทุบตี สคริปต์ (หรือ Linux Shell) คือไฟล์ที่คุณเขียนซึ่งมีคำสั่งให้ทำงานทั่วไปเป็นอัตโนมัติและประหยัดเวลาได้

ตัวแปร เป็นสิ่งที่อยู่ในสคริปต์ที่มีค่าสำหรับใช้ในภายหลัง - ตัวเลขหรือชื่อไฟล์หรืออะไรก็ตามจริงๆ

ต่อไปนี้เป็นวิธีกำหนดและใช้ตัวแปรในสคริปต์ Linux Shell ตัวอย่างเหล่านี้ควรใช้งานได้ใน Linux Shells, Bash และ Zsh ที่ได้รับความนิยมสูงสุด

การประกาศตัวแปรทุบตี

Bash VARIABLES จะไม่ถูกพิมพ์โดยค่าเริ่มต้น คุณไม่สามารถบอก เป็นสิ่งที่สามารถทำได้ด้วยตัวแปร – มันบอกเป็นนัย

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

ด้านล่าง มีการประกาศตัวแปรหลายตัว – MY_STRINGMY_FILE_PATH, และ MY_NUMBER . นี่คือตัวแปรที่ไม่ได้พิมพ์ทั้งหมด

#!/bin/bash          

MY_STRING="Hello Linux!"
MY_FILE_PATH=/path/to/my/file.txt
MY_NUMBER=4

คลิกที่นี่เพื่อหาข้อมูลเกี่ยวกับ #!

ไวยากรณ์คำสั่ง 'ประกาศ'

โปรดทราบว่า ประกาศ เฉพาะสำหรับ Bash สภาพแวดล้อมและอาจไม่ปรากฏหากคุณใช้เชลล์อื่น

ไวยากรณ์ของ ประกาศ เป็นดังนี้:

declare OPTIONS variable_name=variable_value

โปรดทราบว่า:

  • ตัวเลือก เป็นทางเลือกและสามารถเลือกได้จากตารางด้านล่างเพื่อกำหนดประเภทหรือพฤติกรรมของตัวแปร
  • variable_name เป็นชื่อของตัวแปรที่คุณต้องการกำหนด/ประกาศ
  • variable_value คือค่าของตัวแปรดังกล่าว
ประกาศ ตัวเลือก ความหมาย
-r อ่านอย่างเดียว ประกาศตัวแปรแบบอ่านอย่างเดียว
-i จำนวนเต็ม ประกาศตัวแปรจำนวนเต็ม
-a อาร์เรย์ ประกาศตัวแปรที่เป็นอาร์เรย์
-f ฟังก์ชัน ประกาศตัวแปรที่เป็นฟังก์ชัน
-x ส่งออก ประกาศตัวแปรที่สามารถส่งออกนอกสคริปต์ได้

ตัวอย่างคำสั่ง 'ประกาศ'

มีการประกาศตัวแปรสตริง (เช่น ไม่มี OPTIONS ที่ให้มา) ตามด้วยตัวแปรจำนวนเต็ม

#!/bin/bash   

declare MY_STRING="Hello Linux!"
declare -i MY_NUMBER=4

ตอนนี้ หากคุณพยายามกำหนดค่าของตัวแปร MY_STRING ให้กับค่า MY_NUMBER MY NUMBER จะถูกตั้งค่าเป็น 0 เนื่องจากสตริงไม่ได้ประเมินเป็นตัวเลข

ประกาศ มีฟังก์ชันการพิมพ์พื้นฐานเท่านั้น ดังนั้นจึงไม่ใช่สิ่งที่ต้องพึ่งพา แต่มีประโยชน์ในการตรวจสอบให้แน่ใจว่าตัวแปรสามารถเก็บค่าบางประเภทได้เท่านั้น

การใช้ตัวแปรทุบตี

หากต้องการใช้ตัวแปร ให้นำหน้าด้วย $ (เครื่องหมายดอลลาร์). ตัวอย่างเช่น:

#!/bin/bash          

MY_STRING="Hello Linux!"
MY_FILE_PATH=/path/to/my/file.txt
MY_NUMBER=4

echo $MY_STRING # Prints the string variable
touch $MY_FILE_PATH # Create or update the file at the given path
MY_NUMBER=$(($MY_NUMBER+1)) # Increment MY_NUMBER by evaluating a mathmatical formula

สังเกตการใช้สัมผัส คำสั่งสร้างหรืออัปเดตไฟล์ในสคริปต์ด้านบน

สังเกตการใช้วงเล็บคู่ (()) – สิ่งนี้บอกให้ Bash ประเมินคำสั่งที่มีอยู่ภายใน มิฉะนั้น MY_NUMBER จะได้รับค่าสตริงที่มีอักขระ “$MY NUMBER+1”

การใช้ตัวแปรในสตริง

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

หากต้องการรวมตัวแปรในสตริง ให้ใช้ในเครื่องหมายคำพูดที่หุ้มไว้ของสตริงอื่น:

echo "This is my string: $MY_STRING"

ตัวแปรท้องถิ่น

ท้องถิ่น ตัวแปรใช้ได้เฉพาะภายในขอบเขตที่สร้างขึ้น เช่น ภายในฟังก์ชันเฉพาะหรือลูปที่กำหนดไว้

#!/bin/bash

function myFunction {
        local MY_STRING="This string is only available here, in this function"
        echo $MY_STRING
}

echo $MY_STRING # Will print nothing, as the variable was defined locally within a function