เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

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

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

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

ภาพ

นี่คือตัวอย่างสคริปต์ที่แสดงให้เห็นว่าตัวแปรโลคัลถูกกำหนดและใช้งานอย่างไร:


#! / bin / ทุบตี


# local-vars: สคริปต์เพื่อแสดงตัวแปรท้องถิ่น

#! / bin / ทุบตี


# local-vars: สคริปต์เพื่อแสดงตัวแปรท้องถิ่น


ฟู=0

# ตัวแปรโกลบอล foo

ฟู=0


function_1 () {

local foo # ตัวแปร foo local เพื่อ funct_1 foo=1

echo "funct_1: foo = $foo"

}


function_2 () {

local foo # ตัวแปร foo local เพื่อ funct_2 foo=2

echo "funct_2: foo = $foo"

}


echo "global: foo = $foo" funct_1

function_1 () {

local foo # ตัวแปร foo local เพื่อ funct_1 foo=1

echo "funct_1: foo = $foo"

}


function_2 () {

local foo # ตัวแปร foo local เพื่อ funct_2 foo=2

echo "funct_2: foo = $foo"

}


echo "global: foo = $foo" funct_1

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


echo "global: foo = $foo" funct_2

echo "global: foo = $foo"

echo "global: foo = $foo" funct_2

echo "global: foo = $foo"


ดังที่เราเห็น ตัวแปรท้องถิ่นถูกกำหนดโดยนำหน้าชื่อตัวแปรด้วยคำว่า ในประเทศ. สิ่งนี้สร้างตัวแปรที่อยู่ภายในฟังก์ชันเชลล์ที่กำหนดไว้ เมื่ออยู่นอกฟังก์ชันเชลล์ ตัวแปรจะไม่มีอยู่อีกต่อไป เมื่อเราเรียกใช้สคริปต์นี้ เราจะเห็นผลลัพธ์:



[me@linuxbox ~]$ vars ท้องถิ่น

ทั่วโลก: foo = 0 funct_1: foo = 1 ทั่วโลก: foo = 0 funct_2: foo = 2 ทั่วโลก: foo = 0

[me@linuxbox ~]$ vars ท้องถิ่น

ทั่วโลก: foo = 0 funct_1: foo = 1 ทั่วโลก: foo = 0 funct_2: foo = 2 ทั่วโลก: foo = 0


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

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


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: