Latest web development tutorials
×

Linux หลักสูตร

Linux หลักสูตร Linux แนะนำโดยย่อ Linux ติดตั้ง Linux ขั้นตอนการเริ่มต้นระบบ Linux โครงสร้างไดเรกทอรีระบบ Linux วิธีการแก้ปัญหาลืมรหัสผ่านของคุณ Linux เข้าสู่ระบบจากระยะไกล Linux แอตทริบิวต์แฟ้มพื้นฐาน Linux ไฟล์และไดเรกทอรีการจัดการ Linux ผู้ใช้และการจัดการกลุ่มผู้ใช้ Linux การจัดการดิสก์ Linux vi/vim Linux yum คำสั่ง

Shell หลักสูตร

Shell หลักสูตร Shell ตัวแปร Shell ผ่านพารามิเตอร์ Shell ? อาร์เรย์ Shell ผู้ประกอบการ Shell echo คำสั่ง Shell printf คำสั่ง Shell test คำสั่ง Shell การควบคุมกระบวนการ Shell ฟังก์ชัน Shell Input / output เปลี่ยนเส้นทาง Shell ไฟล์มี

Linux คู่มืออ้างอิง

Linux คำสั่ง Daquan Nginx การติดตั้งและการกำหนดค่า MySQL การติดตั้งและการกำหนดค่า

เชลล์? ตัวแปร

ตัวแปรเชลล์

เมื่อคุณกำหนดตัวแปรชื่อตัวแปรโดยไม่ต้องมีเครื่องหมายดอลลาร์ ($ ตัวแปรภาษา PHP จำเป็น) เช่น:

your_name="w3big.com"

ทราบว่ามีไม่มีช่องว่างระหว่างชื่อตัวแปรและเครื่องหมายเท่ากับซึ่งอาจจะคุ้นเคยกับคุณและทุกภาษาโปรแกรมจะไม่เหมือนกัน ในขณะที่ชื่อตัวแปรจะต้องปฏิบัติตามกฎการตั้งชื่อเหล่านี้:

  • ตัวอักษรตัวแรกจะต้องเป็นตัวอักษร (az, AZ)
  • ไม่มีช่องว่างให้ใช้ขีดล่าง (_)
  • คุณไม่สามารถใช้เครื่องหมายวรรคตอน
  • คุณไม่สามารถใช้ทุบตีคำ (ช่วยคำสั่งเพื่อดูคำหลักลิขสิทธิ์ที่มีอยู่)

นอกจากนี้อย่างชัดเจนมอบหมายโดยตรงคุณยังสามารถกำหนดค่าตัวแปรที่มีงบเช่น:

for file in `ls /etc`

ข้อความข้างต้นชื่อไฟล์ / etc ไดเรกทอรีออกจากการไหลเวียน


การใช้ตัวแปร

ใช้ตัวแปรที่กำหนดไว้ตราบเท่าที่ชื่อตัวแปรนำหน้าด้วยเครื่องหมายดอลลาร์เช่นนี้

your_name="qinjx"
echo $your_name
echo ${your_name}

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

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

ถ้าคุณไม่ให้ตัวแปรทักษะบวกวงเล็บเขียน echo "ฉันดีที่ $ skillScript" ล่ามจะใส่ $ skillScript เป็นตัวแปร (ค่าที่เป็นที่ว่างเปล่า) การเรียกใช้โค้ดไม่ได้เป็นผลที่เราคาดหวังเหมือนเดิมอีกครั้ง

บอกทุกวงเล็บตัวแปรก็คือการปฏิบัติเขียนโปรแกรมที่ดี

ตัวแปรที่กำหนดไว้ได้อีกครั้งที่กำหนดไว้เช่น:

your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name

เขียนเป็นกฎหมาย แต่ทราบว่าเมื่อได้รับมอบหมายที่สองไม่สามารถเขียน $ your_name = "อาลีบาบา" ใช้ตัวแปรเมื่อมันจะถูกเพิ่มเครื่องหมายดอลลาร์ ($)

อ่านอย่างเดียวตัวแปร

ใช้คำสั่งตัวแปรอ่านได้อย่างเดียวสามารถกำหนดเป็นแบบอ่านอย่างเดียวตัวแปรค่าของอ่านอย่างเดียวตัวแปรที่ไม่สามารถเปลี่ยนแปลงได้

ตัวอย่างต่อไปนี้พยายามที่จะเปลี่ยนตัวแปรอ่านอย่างเดียวผลที่จะได้รับ:

#!/bin/bash
myUrl="http://www.w3cschool.cc"
readonly myUrl
myUrl="http://www.w3big.com"

เรียกใช้สคริปต์ที่มีผลต่อไปนี้:

/bin/sh: NAME: This variable is read only.

นำตัวแปร

ใช้คำสั่งล้างลบตัวแปร ไวยากรณ์:

unset variable_name

ตัวแปรที่ไม่สามารถนำกลับมาใช้หลังจากที่ถูกลบออก คำสั่งล้างไม่สามารถลบตัวแปรอ่านอย่างเดียว

ตัวอย่าง

#!/bin/sh
myUrl="http://www.w3big.com"
unset myUrl
echo $myUrl

ตัวอย่างของการดำเนินการดังกล่าวข้างต้นจะมีผลลัพธ์ออกมา

ประเภทตัวแปร

เมื่อคุณเรียกใช้เปลือกจะมีสามพารามิเตอร์พร้อมกัน:

  • 1) ตัวแปรท้องถิ่นตัวแปรที่กำหนดไว้ในสคริปต์หรือคำสั่งจะใช้ได้เฉพาะในกรณีเปลือกปัจจุบันโปรแกรมเริ่มต้นเปลือกอื่น ๆ ที่ไม่สามารถเข้าถึงตัวแปรท้องถิ่น
  • 2) ตัวแปรสิ่งแวดล้อมโปรแกรมทั้งหมดรวมถึงโปรแกรมเปลือกเริ่มต้นสามารถเข้าถึงตัวแปรสภาพแวดล้อมการใช้งานบางอย่างต้องใช้ตัวแปรสภาพแวดล้อมเพื่อให้การทำงานปกติของพวกเขา เมื่อมีความจำเป็นเชลล์สคริปต์ยังสามารถกำหนดตัวแปรสภาพแวดล้อม
  • 3) ตัวแปรเชลล์ตัวแปรคือตัวแปรพิเศษที่กำหนดโดยโปรแกรมเปลือก เปลือกเป็นส่วนหนึ่งของตัวแปรตัวแปรสภาพแวดล้อมบางตัวแปรท้องถิ่นเพื่อให้แน่ใจว่าการดำเนินงานปกติของเปลือก

สตริงเชลล์

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

ราคาเดียว

str='this is a string'

อ้างข้อ จำกัด เดียวสตริง:

  • ตัวอักษรใด ๆ ในราคาเดียวจะออกเป็นคำพูดเดียวในตัวแปรสตริงไม่ถูกต้อง
  • สตริงที่ยกเดียวไม่สามารถปรากฏในคำพูดเดียว (ใช้ราคาเดียวหลังจากที่ตัวหนีหรือ)

คำพูดคู่

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"

ราคาสองครั้งข้อดี:

  • ราคาคู่สามารถมีตัวแปร
  • ราคาคู่สามารถปรากฏตัวหนี

concatenation สตริง

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

ได้รับความยาวสาย

string="abcd"
echo ${#string} #输出 4

ย่อยสารสกัดจาก

ตัวอย่างต่อไปนี้จากครั้งแรกสองสายตัวละครเริ่มจับสี่ตัวอักษร:

string="w3big is a great site"
echo ${string:1:4} # 输出 unoo

ค้นหาย่อย

ค้นหาตัวละคร "ฉันหรือ S" ตำแหน่ง:

string="w3big is a great company"
echo `expr index "$string" is`  # 输出 8

หมายเหตุ: สคริปต์ข้าง "` "ต่อต้านคำพูดมากกว่าราคาเดียว" "อย่าถูกหลอกโอ้


อาร์เรย์เชลล์

ทุบตีสนับสนุนอาร์เรย์หนึ่งมิติ (ไม่สนับสนุนอาร์เรย์หลายมิติ) และไม่ได้กำหนดขนาดของอาร์เรย์

คล้ายกับภาษา C ห้อยขององค์ประกอบมากมายจากหมายเลข 0 เริ่มต้น ได้รับการอาร์เรย์ขององค์ประกอบที่จะใช้ประโยชน์จากการห้อยห้อยอาจเป็นจำนวนเต็มหรือการแสดงออกทางคณิตศาสตร์ที่มีค่าควรมากกว่าหรือเท่ากับ 0

กำหนดอาร์เรย์

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

数组名=(值1 值2 ... 值n)

ตัวอย่างเช่น:

array_name=(value0 value1 value2 value3)

หรือ

array_name=(
value0
value1
value2
value3
)

นอกจากนี้คุณยังสามารถกำหนดแยกต่างหากสำหรับองค์ประกอบของอาร์เรย์แต่ละ

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

คุณไม่สามารถใช้ดัชนีอย่างต่อเนื่องและมีขีด จำกัด ภายใต้กรอบเป้าหมายไม่มี

อ่านอาร์เรย์

รูปแบบทั่วไปจะอ่านค่าองค์ประกอบอาร์เรย์:

${数组名[下标]}

ตัวอย่างเช่น:

valuen=${array_name[n]}

ใช้สัญลักษณ์ @ จะได้รับอาร์เรย์ขององค์ประกอบทั้งหมดเช่น:

echo ${array_name[@]}

ได้รับความยาวของอาร์เรย์

ได้รับอาร์เรย์ของความยาวของความยาวสายและได้รับวิธีการเดียวกันตัวอย่างเช่น:

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

เชลล์หมายเหตุ

Line กับ "#" ที่จุดเริ่มต้นของความคิดเห็นจะได้รับการปฏิเสธโดยล่าม

SH ไม่มีความเห็นหลายคู่สายแต่ละสายสามารถเพิ่มสัญญาณ # เพียงเช่นนี้

#--------------------------------------------
# 这是一个注释
# author:本教程
# site:www.w3big.com
# slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####

หากกระบวนการพัฒนาพบชิ้นใหญ่ของรหัสที่ต้องการจะแสดงความคิดเห็นชั่วคราวขึ้นหลังจากที่ในขณะ uncommented และวิธีการที่จะทำหรือไม่

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