Shell SCRIPT – Special Problems in Computer

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อสมการเชิงเส้นตัวแปรเดียว
Advertisements

ASP.NET Uthai ShiangJan Information and Communication Technology.
PHPPHP การเขียนโปรแกรมคอมพิวเตอร์ 1 สาขาวิชาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ.
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
บทที่ 5 การควบคุมทิศทางการทำงานของโปรแกรม
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
การใช้งานโปรแกรม SPSS
คณิตศาสตร์พื้นฐาน ค ชั้นมัธยมศึกษาปีที่ 3 โดย ครูชำนาญ ยันต์ทอง
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง
Array in PHP บทเรียนเรื่อง การใช้ Array ในภาษา PHP.
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ความรู้พื้นฐานการเขียนโปรแกรม
การใช้งาน Microsoft Excel
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
MEE 231 Computer Programming สัปดาห์ที่ 6 ภาษา C หลักการของโปรแกรม ชนิดของตัวแปร การดำเนินการ คำสั่งการรับค่าตัวแปร และการแสดงผล.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
บทที่ 6 การใช้คำสั่ง อ. สุรินทร์ทิพ ศักดิ์ภูวดล สำนักวิชาเทคโนโลยีสารสนเทศและ การสื่อสาร.
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
MTH 261 File Management. File Management File Management จะอธิบายเกี่ยวกับการเขียน ส่วนจัดการแฟ้มข้อมูล เราสามารถที่จะเขียน โปรแกรมเพื่อเรียกใช้แฟ้มข้อมูลที่เรามี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
คำสั่งควบคุมการทำงาน
อาจารย์อภิพงศ์ ปิงยศ Lab 05 : Microsoft Excel (Part3) พท 260 เทคโนโลยีสารสนเทศและการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์ ปิงยศ.
เกม คณิตคิดเร็ว.
บทที่ 5 การใช้คำสั่ง Select Case , For Next และ Do While
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 5 อินพุตและเอาต์พุต
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
Introduction SQLite Prawit Pimpisan Computer Science RERU.
Document Management Solution
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
โครงสร้างภาษา C Arduino
หน่วยการเรียนที่ 4 เรื่อง การควบคุมทิศทางการทำงาน
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
Control Statement เงื่อนไขคำสั่งในโปรแกรม ภาษา C
บทที่ 8 เงื่อนไขตัดสินใจ
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
คำสั่ง Create , Insert, Delete, Update
บทที่ 8 การควบคุมระบบสารสนเทศทางการบัญชี : การควบคุมเฉพาะระบบงาน
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
Data storage II Introduction to Computer Science ( )
บริษัท พัฒนาวิชาการ (2535) จำกัด
บทที่ 9 การทำซ้ำ (Loop).
การเขียนภาษาจาวาเบื้องต้น
บทที่ 3 Programming By Wathinee duangonnam
Week 5 C Programming.
Client/Server Application (FilE server)
คณิตศาสตร์ 1 รหัสวิชา
คำสั่งวนรอบ (Loop).
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
OPERATOR ภาษาปาสคาล (Pascal)
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
3 โครงสร้างข้อมูลแบบคิว (QUEUE).
Chapter 3 : Array.
Array: One Dimension Programming I 9.
การเติบโตของฟังก์ชัน (Growth of Functions)
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Decision: Single and Double Selection (if and if-else statement)
ใบสำเนางานนำเสนอ:

Shell SCRIPT 030523115 – Special Problems in Computer Asst. Prof. Dr. Choopan Rattanapoka

Introduction to Shell Script คำสั่งต่างๆ ที่พิมพ์บน Shell ใน Linux นั้นสามารถจะนำหลายๆคำสั่งมา ทำงานต่อเนื่องกันได้ โดยการเขียนโปรแกรมที่เรียกว่า “Shell Script” ซึ่งการทำงานบางอย่างอาจจะมีการเรียกใช้งานหลายคำสั่ง shell script จะช่วยลดเวลาเหล่านั้นด้วยการรวมคำสั่งและเรียกใช้งานเพียงคำสั่งเดียว Shell script เหมือนกับการเขียนโปรแกรมทั่วไป คือ มีการรับค่าได้ และ ในตัวคำสั่งจะมีการทำเงื่อนไข และการทำซ้ำ สำหรับ BASH ถ้าจะทำ shell script บรรทัดแรกจะต้องชี้ตำแหน่งที่อยู่ ของ bash ถ้าที่อยู่ได้ด้วยคำสั่ง “which bash” ถ้า bash อยู่ที่ /bin/bash บรรทัดแรกของ shell script จะใส่ #!/bin/bash

เริ่มต้นเขียน shell script คำสั่ง date ใช้สำหรับดูวันเวลา คำสั่ง whoami ใช้สำหรับดูชื่อผู้ใช้ที่กำลังใช้งาน คำสั่ง du –s ชื่อdirectory ดูเนื้อที่การใช้งานรวมของ directory ต้องการสร้าง shell script ชื่อ report เพื่อรายงานข้อมูลดังนี้ Current date time : วันเวลาที่ได้จากคำสั่ง date User logged in : username ที่ได้จาก whoami Harddisk usage : ค่าที่ได้จาก du -s

ตัวแปรใน shell ใน shell จะสามารถประกาศตัวแปรได้เหมือนกับภาษาโปรแกรมทั่วไป ตัวแปรใน shell ไม่มีประเภทของข้อมูล การใส่ค่าให้กับตัวแปร ชื่อตัวแปร=ค่า testvar=“Hello World” การใช้ค่าที่เก็บในตัวแปร $ชื่อตัวแปร echo $testvar

สร้างตัวแปร 3 ตัวเพื่อเก็บค่าของคำสั่ง ในตัวอย่างเราต้องการนำผลลัพธ์ของ date, whoami, และ du มาเก็บ ไว้ตัวแปรก่อน datevar=“date” (ผิด ตัวแปรจะเก็บคำว่า date แทน) ถ้าต้องการให้ตัวแปรเก็บผลลัพธ์ที่เกิดจากการเรียกใช้คำสั่ง จะต้องใช้ เครื่องหมาย ` (backquote) ครอบคำสั่ง datevar= `date` อีก 2 ตัวแปรที่เหลือ (ลองทำ) whoamivar=? duvar=?

การแสดงผลลัพธ์ออกทาง standard output คำสั่ง echo ใช้สำหรับแสดงผลลัพธ์ออกทาง standard output เราต้องการ output ซึ่งอยู่ในรูปแบบนี้ echo “Current date time: $datevar” echo “User logged in : $whoamivar” echo “Harddisk Usage : $duvar KB” เมื่อเขียน shell script เสร็จแล้วจะยังไม่สามารถเรียกใช้งานได้ จำเป็นจะ เป็นเพิ่มสิทธิของแฟ้มข้อมูลให้สามารถเรียกใช้งานได้ โดยใช้คำสั่ง chmod u+x report

คณิตศาสตร์ใน Shell ปกติแล้วตัวแปรใน shell จะเก็บอยู่ในรูปของ ข้อความ ทำให้ไม่สามารถทำ ตัวดำเนินการทางคณิตศาสตร์ได้ จำเป็นต้องใช้คำสั่งเพิ่มคือ expr expr 1 + 2 expr 2 – 1 expr 10 / 2 expr 20 % 3 expr 10 \* 3

การอ่านค่าจาก keyboard คำสั่ง read ใช้สำหรับอ่านค่าจาก keyboard นำมาเก็บไว้ในตัวแปร read ชื่อตัวแปร ตัวอย่าง shell script #!/bin/bash echo “Enter your name : “ read myvar echo “Your name is $myvar”

การรับ argument เข้า shell script สมมุติมี shell script ชื่อ myshell มีการเรียกใช้งานดังนี้ myshell foo bar ข้างใน shell จะสามารถอ้างอิงค่าที่เรียกใช้งานคำสั่งคือ myshell -> $0 foo -> $1 bar -> $2 $# เก็บจำนวนของ arguments ในที่นี้คือ 2 $* หรือ $@ เก็บ list ของ argument ที่ป้อนมาทั้งหมด

การคืนสถานะของคำสั่ง ปกติเมื่อมีการใช้คำสั่งใน Linux เมื่อโปรแกรมทำงานสำเร็จ คำสั่งนั้นจะ คืนค่า 0 สามารถตรวจสอบค่าของสถานะที่คำสั่งคืนได้ด้วยการด้วยค่าในตัวแปร $? ตัวอย่าง ls echo $? cat foobar

การเปรียบเทียบเงื่อนไขใน shell if เงื่อนไข then ชุดคำสั่งเมื่อเงื่อนไขเป็นจริง fi ใน shell เงื่อนไขที่เป็นจริงจะมีค่าเป็น 0 ตัวเลขนอกเหนือจากนี้คือเท็จ (กลับกับ C) ตัวอย่าง script #!/bin/bash if cat $1 echo “$1 : found”

คำสั่ง test หรือ [ expr ] การเปรียบเทียบตัวเลข ตัวเปรียบเทียบ ความหมาย การใช้งาน test การใช้งาน [ expr ] -eq เท่ากับ if test 5 –eq 6 if [ 5 –eq 6 ] -ne ไม่เท่ากับ if test 5 –ne 6 if [ 5 –ne 6 ] -lt น้อยกว่า if test 5 –lt 6 if [ 5 –lt 6 ] -le น้อยกว่าเท่ากับ if test 5 –le 6 if [ 5 –le 6 ] -gt มากกว่า if test 5 –gt 6 if [ 5 –gt 6 ] -ge มากกว่าเท่ากับ if test 5 –ge 6 if [ 5 –ge 6 ]

คำสั่ง test หรือ [ expr ] (ต่อ) การเปรียบเทียบข้อความ การเปรียบเทียบแฟ้มข้อมูล ตัวเปรียบเทียบ ความหมาย String1 = String2 String1 เท่ากับ String2 String1 != String2 String1 ไม่เท่ากับ String2 String1 String1 ไม่เป็น NULL หรือไม่ได้กำหนด -n String1 String1 ไม่เป็น NULL แต่ต้องมีอยู่ -z String1 String1 เป็น NULL และมีอยู่ ตัวเปรียบเทียบ ความหมาย -s ชื่อfile แฟ้มข้อมูลไม่ว่างเปล่า -f ชื่อfile มีแฟ้มข้อมูลอยู่ในระบบ -d ชื่อdirectory มีไดเรกทอรีอยู่ในระบบ -w ชื่อfile สาทรถเขียนแฟ้มข้อมูลนี้ได้ -r ชื่อfile สามารถอ่านแฟ้มข้อมูลนี้ได้ -x ชื่อfile สามารถเรียกแฟ้มข้อมูลนี้ใช้งานได้

การเชื่อม expression, if-else, if-elif-else ตัวเชื่อม ความหมาย ! expr NOT expr1 -a expr2 AND expr1 -o expr2 OR รูปแบบของ if-elif-else if เงื่อนไข1 then ชุดคำสั่งเมื่อเงื่อนไข1 เป็นจริง elif เงื่อนไข2 ชุดคำสั่งเมื่อเงื่อนไข2 เป็นจริง else ชุดคำสั่งเมื่อทุกเงื่อนไขเป็นเท็จ fi if เงื่อนไข then ชุดคำสั่งเมื่อเงื่อนไขเป็นจริง else ชุดคำสั่งเมื่อเงื่อนไขเป็นเท็จ fi

ตัวอย่าง shell script (1) เปรียบเทียบ argument 2 ตัว #!/bin/bash if [ $1 –eq $2 ] then echo “$1 = $2” elif [ $1 –gt $2 ] echo “$1 > $2” else echo “$1 < $2” fi

คำสั่งทำซ้ำ (loop) ใน shell มีคำสั่ง loop อยู่ 2 ชนิดคือ while for คำสั่ง for มี 2 ประเภท for ชื่อตัวแปร in รายการค่าที่จะใส่ในตัวแปร do ชุดคำสั่งที่ต้องการทำใน loop done for (( expr1; expr2; expr3 )) do ชุดคำสั่งที่ต้องการทำใน loop done (1) (2)

ตัวอย่าง คำสั่ง for #!/bin/bash #!/bin/bash for x in 1 2 3 4 5 do echo “x = $x” done #!/bin/bash for (( x = 1; x <= 5; x++ )) do echo “x = $x” done #!/bin/bash numfile=0 for fname in `ls` do echo “filename => $fname” numfile=`expr $numfile + 1`; done echo “there are $numfile files”

คำสั่ง while while เงื่อนไข do ชุดคำสั่งที่ต้องการทำใน loop done #!/bin/bash x=0 while [ x –le 5 ] do echo “x = $x” x=`expr $x + 1` done

คำสั่ง case case ตัวแปร in #!/bin/bash pattern1) คำสั่ง1 คำสั่ง2 ;; pattern2) คำสั่ง ;; *) คำสั่ง ;; esac #!/bin/bash echo “Enter vehicle : “ read vehicle case $vehicle in “car”) echo “Car is good”;; “bike”) echo “Bike is slow”;; “plane”) echo “Plane is super fast”;; *) echo “huh” esac

วิธี debug shell script สามารถ debug ดูขั้นตอนการทำงานของ shell script ได้ด้วยกันใช้ option “-x” สามารถทำได้ 2 วิธี เวลาเรียกใช้งาน sh -x ชื่อ shell script แทรกลงใน shell script บรรทัดต่อจาก #!/bin/bash set -x

แบบฝึกหัด (1) เขียน shell script เพื่อรับ argument 1 ตัว เป็นตัวเลข 0 – 100 ถ้าผู้ใช้ป้อน argument มาก หรือ น้อยกว่า 1 ตัวให้เตือน “error args” ถ้าผู้ใช้ป้อนตัวเลขที่ไม่ได้อยู่ในช่วง 0 – 100 ให้เตือน “error enter 0-100” ถ้าค่าที่ป้อนอยู่ในช่วง 0 - 50 ให้แสดง “F” 51 – 60 ให้แสดง “D” 61 – 70 ให้แสดง “C” 71 – 80 ให้แสดง “B” 81 – 100 ให้แสดง “A”

แบบฝึกหัด (2) เขียน shell script เพื่อรับ argument 1 ตัว ถ้าผู้ใช้ป้อน argument มาก หรือ น้อยกว่า 1 ตัวให้เตือน “error” ถ้าผู้ใช้ป้อนตัวเลข น้อยกว่าหรือเท่ากับ 0 ให้เตือน “error need positive number” ให้ shell หาค่า summation ของตัวเลขที่ป้อนเข้ามาเป็น argument ตัวอย่าง ./summation 10 คือ หาค่าของ 1+2+3+4+5+6+7+8+9+10 แสดงผลลัพธ์ออกทางหน้าจอ

แบบฝึกหัด (3) เขียน shell script ชื่อ mydb.sh ซึ่งมี option ก็ทำงานคือ add, list ถ้าผู้ใช้สั่ง ./mydb.sh add choopan 1979 Shell script จะนำ ชื่อ และ ปี คศ ที่เกิดไปเก็บในแฟ้มชื่อ db ในรูปแบบ ชื่อ:ปีเกิด ถ้าผู้ใช้สั่ง ./mydb.sh list Shell script จะแสดงชื่อ และอายุของทุกคนออกมาทางหน้าจอ ถ้า option เป็นอย่างอื่นที่ไม่ใช่ add หรือ list ให้เตือน “error”