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 การติดตั้งและการกำหนดค่า

ผู้ประกอบการขั้นพื้นฐานเชลล์

เชลล์และการเขียนโปรแกรมภาษาอื่น ๆ ที่สนับสนุนความหลากหลายของผู้ประกอบการรวมไปถึง:

  • ดำเนินการทางคณิตศาสตร์
  • ผู้ประกอบการเชิงสัมพันธ์
  • ผู้ประกอบการบูลี
  • ผู้ประกอบการสตริง
  • ยื่นประกอบการทดสอบ

ทุบตีพื้นเมืองไม่สนับสนุนการดำเนินการทางคณิตศาสตร์ที่เรียบง่าย แต่สามารถทำได้โดยคำสั่งอื่น ๆ เช่น awk และ expr, expr ใช้กันมากที่สุด

expr เป็นเครื่องมือการคำนวณการแสดงออกใช้มันเพื่อให้การดำเนินการประเมินการแสดงออก

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

#!/bin/bash

val=`expr 2 + 2`
echo "两数之和为 : $val"

เล่นอินสแตนซ์»

รันสคริปต์เอาท์พุทจะเป็นดังนี้:

两数之和为 : 4

สองสิ่งที่ควรทราบ:

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

ดำเนินการทางคณิตศาสตร์

ตารางต่อไปนี้แสดงรายการตัวดำเนินการทางคณิตศาสตร์ที่พบบ่อยสมมติตัวแปร 10 ตัวแปร B คือ 20:

ผู้ประกอบการ คำอธิบาย ตัวอย่าง
+ การเพิ่ม `Expr $ A + $ b` ผลคือ 30
- การลบ `Expr $ a - $ b` ผลเป็น -10
* * * * การคูณ `Expr $ a \ * ผล $ b` 200
/ หมวด `Expr $ / ผล a` $ B คือ 2
% เหลือ `Expr $ B% ผล a` $ คือ 0
= การมอบหมาย A = B $ b ตัวแปรจะกำหนดมูลค่าของการให้
== เท่ากัน ใช้ในการเปรียบเทียบตัวเลขสองกลับเดียวกันจริง [$ A $ == b] กลับเท็จ
! = ไม่เท่ากัน ใช้ในการเปรียบเทียบตัวเลขสองไม่ได้ผลตอบแทนที่เดียวกันจริง [$ A! = $ B] ผลตอบแทนจริง

หมายเหตุ: นิพจน์เงื่อนไขควรอยู่ระหว่างวงเล็บและรวมถึงพื้นที่ตัวอย่างเช่น:[$ a $ == b] เป็นสิ่งที่ผิดและจะต้องเขียนเป็น[$ a $ == b]

ตัวอย่าง

ตัวอย่างดำเนินการทางคณิตศาสตร์มีรายละเอียดดังนี้

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [ $a == $b ]
then
   echo "a 等于 b"
fi
if [ $a != $b ]
then
   echo "a 不等于 b"
fi

รันสคริปต์เอาท์พุทจะเป็นดังนี้:

a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a 不等于 b

หมายเหตุ:

  • เครื่องหมายคูณ (*) จะต้องเพิ่มในด้านหน้าของเครื่องหมาย (\) เพื่อให้บรรลุคูณ;
  • ถ้า ... แล้ว ... Fi เป็นงบเงื่อนไขการติดตามจะได้รับการคุ้มครอง
  • ในกะลา MAC ของไวยากรณ์ expr คือ: $ ((expression)) ซึ่งการแสดงออก "*" ต้องหนีสัญลักษณ์ "\".

ผู้ประกอบการเชิงสัมพันธ์

ผู้ประกอบการสัมพันธ์เพียง แต่สนับสนุนดิจิตอลไม่สนับสนุนสตริงเว้นแต่ค่าของสตริงที่เป็นตัวเลข

ตารางต่อไปนี้แสดงผู้ประกอบการเชิงสัมพันธ์ที่ใช้กันทั่วไปสมมติตัวแปร 10 ตัวแปร B คือ 20:

ผู้ประกอบการ คำอธิบาย ตัวอย่าง
-eq การตรวจสอบไม่ว่าจะเป็นตัวเลขสองมีค่าเท่ากันเท่ากับผลตอบแทนที่แท้จริง [$ A $ -eq b] กลับเท็จ
-ne การตรวจสอบไม่ว่าจะเป็นตัวเลขสองมีค่าเท่ากันไม่ได้ผลตอบแทนเท่ากันจริง [$ A $ -ne b] ผลตอบแทนจริง
-gt ซ้ายมากกว่าจำนวนที่ตรวจพบในที่เหมาะสมและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [$ A $ -gt b] กลับเท็จ
-lt การตรวจสอบจำนวนน้อยกว่าด้านขวาของด้านซ้ายและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [$ A $ -lt b] ผลตอบแทนจริง
-GE การตรวจสอบไม่ว่าจะเป็นจำนวนเท่ากับไปทางขวาของด้านซ้ายของที่มีขนาดใหญ่และถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [$ A $ -GE b] กลับเท็จ
เลอ ไม่ว่าจำนวนของการตรวจสอบน้อยกว่าหรือเท่ากับไปทางขวาไปทางซ้ายถ้ามันเป็นความจริงก็จะส่งกลับ [$ A $ เลอ b] ผลตอบแทนจริง

ตัวอย่าง

ตัวอย่างผู้ประกอบการเชิงสัมพันธ์มีดังนี้

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
then
   echo "$a -ne $b: a 不等于 b"
else
   echo "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
then
   echo "$a -gt $b: a 大于 b"
else
   echo "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
else
   echo "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
then
   echo "$a -ge $b: a 大于或等于 b"
else
   echo "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
then
   echo "$a -le $b: a 小于或等于 b"
else
   echo "$a -le $b: a 大于 b"
fi

รันสคริปต์เอาท์พุทจะเป็นดังนี้:

10 -eq 20: a 不等于 b
10 -ne 20: a 不等于 b
10 -gt 20: a 不大于 b
10 -lt 20: a 小于 b
10 -ge 20: a 小于 b
10 -le 20: a 小于或等于 b

ผู้ประกอบการบูลี

ตารางต่อไปนี้แสดงผู้ประกอบการบูลีนที่ใช้กันทั่วไปสมมติตัวแปร 10 ตัวแปร B คือ 20:

ผู้ประกอบการ คำอธิบาย ตัวอย่าง
! ที่ไม่ใช่การดำเนินงานการแสดงออกเป็นผลตอบแทนจริงเท็จมิฉะนั้นผลตอบแทนจริง [! FALSE] ผลตอบแทนจริง
-o หรือการดำเนินงานมีการแสดงออกที่จริงผลตอบแทนจริง [$ A -lt 20 -o $ B -gt 100] ผลตอบแทนจริง
-a และการดำเนินงานของทั้งสองสำนวนที่เป็นจริงก่อนที่จะกลับจริง [$ A -lt 20 -a $ B -gt 100] กลับเท็จ

ตัวอย่าง

ตัวอย่างผู้ประกอบการบูลีนมีดังนี้

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a != $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a -lt 100 -a $b -gt 15 : 返回 true"
else
   echo "$a -lt 100 -a $b -gt 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a -lt 100 -o $b -gt 100 : 返回 true"
else
   echo "$a -lt 100 -o $b -gt 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
   echo "$a -lt 100 -o $b -gt 100 : 返回 true"
else
   echo "$a -lt 100 -o $b -gt 100 : 返回 false"
fi

รันสคริปต์เอาท์พุทจะเป็นดังนี้:

10 != 20 : a 不等于 b
10 -lt 100 -a 20 -gt 15 : 返回 true
10 -lt 100 -o 20 -gt 100 : 返回 true
10 -lt 100 -o 20 -gt 100 : 返回 false

ดำเนินการทางตรรกะ

ต่อไปนี้อธิบายผู้ประกอบการเชลล์ตรรกะสมมติตัวแปร 10 ตัวแปร B คือ 20:

ผู้ประกอบการ คำอธิบาย ตัวอย่าง
&& ตรรกะและ [[$ A -lt 100 && $ B -gt 100]] กลับเท็จ
|| หรือตรรกะ [[$ A -lt 100 || $ B -gt 100]] ผลตอบแทนจริง

ตัวอย่าง

ตัวอย่างของการดำเนินการทางตรรกะมีดังนี้

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

if [[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

if [[ $a -lt 100 || $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

รันสคริปต์เอาท์พุทจะเป็นดังนี้:

返回 false
返回 true

ผู้ประกอบการสตริง

ตารางต่อไปนี้ผู้ประกอบการที่ใช้กันทั่วไปสตริงสันนิษฐานว่าเป็นตัวแปร "ABC" ตัวแปร B คือ "EFG":

ผู้ประกอบการ คำอธิบาย ตัวอย่าง
= การตรวจจับสองสายมีค่าเท่ากันเท่ากับผลตอบแทนที่แท้จริง [$ A = $ b] กลับเท็จ
! = ตรวจหาว่าสองสายมีค่าเท่ากันไม่ได้ผลตอบแทนเท่ากันจริง [$ A! = $ B] ผลตอบแทนจริง
-z ตรวจหาว่ามีความยาวสตริงคือ 0 0 ผลตอบแทนที่แท้จริง [-z $ A] กลับเท็จ
-n การตรวจสอบไม่ว่าจะเป็นความยาวสายเป็น 0 ที่ไม่ใช่ศูนย์กลับจริง [-n $ A] ผลตอบแทนจริง
STR การตรวจสอบไม่ว่าจะเป็นสตริงว่างเปล่าไม่ได้กลับมาเปล่าจริง [$ A] ผลตอบแทนจริง

ตัวอย่าง

ตัวอย่างสตริงผู้ประกอบการมีรายละเอียดดังนี้

#!/bin/bash
# author:本教程
# url:www.w3big.com

a="abc"
b="efg"

if [ $a = $b ]
then
   echo "$a = $b : a 等于 b"
else
   echo "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a != $b: a 等于 b"
fi
if [ -z $a ]
then
   echo "-z $a : 字符串长度为 0"
else
   echo "-z $a : 字符串长度不为 0"
fi
if [ -n $a ]
then
   echo "-n $a : 字符串长度不为 0"
else
   echo "-n $a : 字符串长度为 0"
fi
if [ $a ]
then
   echo "$a : 字符串不为空"
else
   echo "$a : 字符串为空"
fi

รันสคริปต์เอาท์พุทจะเป็นดังนี้:

abc = efg: a 不等于 b
abc != efg : a 不等于 b
-z abc : 字符串长度不为 0
-n abc : 字符串长度不为 0
abc : 字符串不为空

ยื่นประกอบการทดสอบ

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

แอตทริบิวต์การตรวจสอบรายละเอียดดังนี้

ผู้ประกอบการ คำอธิบาย ตัวอย่าง
ไฟล์ -b การตรวจสอบว่าแฟ้มเป็นแฟ้มอุปกรณ์ป้องกันและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-b $ File] กลับเท็จ
ไฟล์ -c การตรวจสอบว่าแฟ้มเป็นแฟ้มอุปกรณ์ตัวอักษรและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-c $ File] กลับเท็จ
ไฟล์ -d การตรวจสอบว่าแฟ้มเป็นไดเรกทอรีและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-d $ File] กลับเท็จ
ไฟล์ -f การตรวจสอบว่าไฟล์เป็นไฟล์ปกติ (ค่าไดเรกทอรีหรืออุปกรณ์แฟ้ม) และถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-f $ File] ผลตอบแทนจริง
ไฟล์ -G การตรวจสอบว่าแฟ้มมีบิต SGID และถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-G $ File] กลับเท็จ
ไฟล์ -k การตรวจสอบว่าแฟ้มมี bit เหนียว (เหนียว bit) และถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-k $ File] กลับเท็จ
ไฟล์ -p ตรวจหาว่าไฟล์จะถูกไปป์ที่มีชื่อและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-p $ File] กลับเท็จ
ไฟล์ -u การตรวจสอบว่าแฟ้มมีบิต SUID และถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-u $ File] กลับเท็จ
ไฟล์ -R ตรวจพบว่าไฟล์ที่สามารถอ่านได้และถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-R $ File] ผลตอบแทนจริง
ไฟล์ -w การตรวจสอบว่าไฟล์ที่สามารถเขียนและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-w $ File] ผลตอบแทนจริง
ไฟล์ -x การตรวจสอบว่าไฟล์เป็นปฏิบัติการและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-x $ File] ผลตอบแทนจริง
ไฟล์ -s การตรวจสอบว่าไฟล์ที่ว่างเปล่า (ขนาดไฟล์ที่มีค่ามากกว่า 0), ไม่ได้กลับมาเปล่าจริง [-s $ File] ผลตอบแทนจริง
ไฟล์ -e ตรวจสอบไฟล์ (รวมถึง directory) อยู่แล้วและถ้าเป็นเช่นนั้นก็จะส่งกลับจริง [-e $ File] ผลตอบแทนจริง

ตัวอย่าง

ไฟล์ตัวแปรบ่งชี้ไฟล์ "/var/www/w3big/test.sh" ขนาด 100 ไบต์ด้วยสิทธิ์ rwx รหัสต่อไปนี้จะตรวจสอบคุณลักษณะต่างๆของไฟล์:

#!/bin/bash
# author:本教程
# url:www.w3big.com

file="/var/www/w3big/test.sh"
if [ -r $file ]
then
   echo "文件可读"
else
   echo "文件不可读"
fi
if [ -w $file ]
then
   echo "文件可写"
else
   echo "文件不可写"
fi
if [ -x $file ]
then
   echo "文件可执行"
else
   echo "文件不可执行"
fi
if [ -f $file ]
then
   echo "文件为普通文件"
else
   echo "文件为特殊文件"
fi
if [ -d $file ]
then
   echo "文件是个目录"
else
   echo "文件不是个目录"
fi
if [ -s $file ]
then
   echo "文件不为空"
else
   echo "文件为空"
fi
if [ -e $file ]
then
   echo "文件存在"
else
   echo "文件不存在"
fi

รันสคริปต์เอาท์พุทจะเป็นดังนี้:

文件可读
文件可写
文件可执行
文件为普通文件
文件不是个目录
文件不为空
文件存在