Tải bản đầy đủ (.pdf) (41 trang)

Bài giảng Hệ điều hành Unix-Linux: Chương 7 - Đặng Thu Hiền

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (420.77 KB, 41 trang )

Hệ iều hành UNIX-Linux
Chương 7. Lập trình Shell

Đặng Thu Hiền
Khoa Công nghệ thông tin
Trường Đại học Công nghệ
Đại học Quốc gia Hà Nội

1


Chương trình shell
n 

n 

n 

Chương trình shell là một tập hợp các câu lệnh được viết trong một file
text
Nó giống chương trình .bat trong MSDOS nhưng có sức mạnh lớn hơn
nhiều
Chương trình shell có thể nhận dữ liệu từ người dùng, từ file và in kết
quả ra màn hình

n 

Có thể dùng để tạo ra một lệnh riêng cho mình

n 


Shell giúp tiết kiệm thời gian

n 

Các bước để tạo ra một chương trình shell

n 

n 

Sử dụng một chương trình soạn thảo text để tạo ra một file chương trình

n 

Thay đổi thuộc tính của file vừa tạo ra thêm thuộc tính khả thi: chmod +x ./script.sh

n 

Có thể chạy ln chương trình bằng lệnh: sh script.sh

Các chương trình shell nên đặt i là .sh
2


Trình soạn thảo v n bản trong Linux
n 

Trình soạn thảo vim

3



Cấu trúc chương trình shell
n 

Là một tập hợp các lệnh và các cấu trúc iều khiển

n 

Mỗi lệnh được viết trên 1 dịng

n 

Chú thích trong chương trình là phần nằm sau dấu #

n 

Dịng chú thích đầu tiên trong file chương trình shell
s báo cho hệ thống chọn shell (chương trình) nào để
thực hiện chương trình (ngầm định là shell hiện tại)
#!/bin/bash
#!/usr/bin/perl
#!/bin/csh
#!/bin/rm
16


Các loại shell

n 


Muốn xem các loại shell có trong hệ thống ta sử dụng
lệnh: cat /etc/shells

n 

Muốn xem shell hiện tại: echo $SHELL

n 

Phần này chỉ đề cập đến lập trình shell trong bash
4


Các ký hiệu đặc biệt trong shell

Khi đặt tên
biến cần
tránh xung
đột với các
ký tự đặc
biệt này

5


Sử dụng biến trong shell
n 

n 


Biến hệ thống được Linux tạo ra và quản lý (CHỮ IN
HOA)
Biến người dùng: được người dùng tạo ra và quản lý
(chữ thường)

6


Danh sách một số biến hệ thống

7


Quy tắc đặt tên biến
n 

n 
n 

Tên biến phải bắt đầu với một ký tự chữ cái hoặc dấu gạch dưới (_),
tiếp theo là một hoặc một số ký tự chữ hoặc số
Biến được khởi tạo khi ta gán giá trị cho biến
Không thêm các dấu cách vào trước và sau dấu gán, khi gán giá trị
cho biến

n 

Biến trong Linux phân biệt chữ HOA thường


n 

Tìm các biến hợp lệ và khơng hợp lệ:
n 

no=10
new_variable= Test

n 

number= 10

n 

1stnumber=10

n 

8


Truy cập và xoá biến
n 

Truy cập giá trị của một biến ta dùng ký tự $ trước
tên biến, xóa 1 biến sử dụng lệnh unset var
n 

n 


n 

echo $new_variable

Lệnh echo [tùy chọn] [chuỗi, biến] dùng để hiển
thị v n bản hoặc giá trị của biến ra màn hình
Tùy chọn:
n 
n 

-n khơng hiển thị ký hiệu xuống dòng,
-e hiển thị các ký tự ẩn đặc biệt sau trong chuỗi

9


Trích dẫn (quoting)
n 
n 

Trích dẫn là cách bao quanh một chuỗi bằng cặp dấu nháy
Cho phép một số ký tự đặc biệt giữ ngun như các ký tự
bình thường

n 

Có 2 loại trích dẫn mạnh ( … ) và trích dẫn yếu ( … )

n 


Trích dẫn mạnh bảo tồn tồn bộ các ký tự trong chuỗi
n 

n 

n 

echo Giá trị của tham số đầu tiên là: $var
→ Giá trị của tham số đầu tiên là: $var
ls -l '[Vv]* → ls: [Vv]*: No such file or directory

Trích dẫn yếu vẫn biên dịch các biến trong chuỗi echo
n 

var=2; Giá trị của biến là: $var ;

n 

→ Giá trị của biến là 2
10


Tính tốn số học trên các biến
n 

n 

n 

Tính tốn trong shell được thực hiện với các đối số

nguyên
Các phép toán gồm có: cộng (+), trừ (-), nhân (*), chia
(/), mod (%)
Tính tốn trên shell có dạng:
n 

n 

`expr <biểu thức>`

Ví dụ
var1=10
var2=20
sum=`expr $var1 + $var2 `
product=`expr $var1 * $var2 `
echo Tổng của $var1 và $var2 là: $sum, tích của chúng là $product
11


Tham số dịng lệnh
trong chương trình shell
n 

n 

Là tham số được truyền vào cho chương trình trên dịng
lệnh
Dùng để thơng báo cho chương trình các tùy chọn, file cần
xử lý
n 


rm test.txt
ls –a /usr/local

n 

myshell 10 30

n 

n 

Truy cập các tham số dòng lệnh thông qua các biến hệ
thống $1, …, $9
n 

echo $1 # hiển thị 10

n 

echo $2 # hiển thị 30

12


Tham số dịng lệnh
trong chương trình shell
n 

Tổng số tham số trả lại qua biến $#,


n 

$* hoặc $@ trả lại toàn bộ tham số

n 

Biến $0 trả lại tên chương trình
echo "Total number of command line argument are $#
echo "$0 is script name
echo "$1 is first argument
echo "$2 is second argument
echo "All of them are :- $* or $@"

13


Tham số dịng lệnh
trong chương trình shell
n 

Làm sao truy cập các tham số có số thứ tự > 9?

n 

Truy xuất thông qua $@ hay $*

n 

Dùng lệnh shift


n 

shift s gán lại giá trị của các tham số vị trí bằng cách
dịch trái giá trị của danh sách các biến
n 

n 

$1 <--- $2, $2 <--- $3, $3 <--- $4, ...

Ví dụ
echo Giá trị của tham số thứ nhất là: $1
shift
echo Giá trị của tham số thứ 2 là: $1
14


Giá trị logic trong shell
n 

n 

Ngược với C hay các ngôn ngữ lập trình thơng dụng,
trong shell giá trị 0 ngh a là true còn giá trị khác 0 là
false
Giá trị logic là một giá trị quan trọng trong các cấu
trúc iều khiển

15



Điều khiển luồng trong shell
n 

Các câ u trúc iê
n 

n 

n 

n 

n 

n 

u khiê

n luô ng bao gô

if – Thi hành mọ t hoạ c nhiê
kiẹ n là true hoạ c false.
for – Thi hành mọ t hoạ
sô cô
i nh lâ n.

u câu lẹ


c nhiê

nh nê

u câu lẹ

m:

u có iê

nh trong mọ

u
t

while – Thi hành mọ t hoạ c nhiê u câu lẹ nh trong khi
mọ t iê u kiẹ n nào ó là true hoạ c false.
until – Thi hành mọ t hoạ c nhiê u câu lẹ nh cho ê n khi
mọ t iê u kiẹ n nào ó trơ thành true hoạ c false.
case – Thi hành mọ t hoạ c nhiê
thuọ c vào giá tri cu a biê n.

u câu lẹ

nh phu

select – Thi hành mọ t hoạ c nhiê u câu lẹ nh dư a trên
mọ t khoa ng tuy cho n cu a ngu ơ i dùng.
16



Cấu trúc iều khiển if
n 

n 

n 

n 

Điều kiện if được sử dụng để đưa ra các quyết định
trong chương trình shell
Nếu iều kiện được cung cấp là úng thì các lệnh
trong ó được thực thi
Điều kiện là một phép so sánh giữa 2 giá trị, một lệnh
kiểm tra hay kết quả trả về của 1 chương trình
Cấu trúc
if điều_kiện
then
#Khối lệnh sẽ được thực hiện nếu điều_kiện là đúng
fi
17


Cấu trúc iều khiển if
n 

Ví dụ:

if cat $1

then
echo -e "\n\nFile $1, found and successfully echoed"
fi
n 

Trong linux các lệnh thường trả về trạng thái thành
cơng hay lỗi, nếu thành cơng thì trả về giá trị 0, nếu
bị lỗi thì s trả về mã lỗi khác 0

18


Lệnh test hay []
n 

n 

Được dùng để kiểm tra xem một biểu thức úng (0)
hay sai (<>0)
Cú pháp
n 

n 

test biểu_thức hoặc [ biểu_thức]

Ví dụ:
if test $1 -gt 0
then
echo "$1 number is positive"

fi
if [ $1 -gt 0 ]
then
echo "$1 number is positive"
fi

19


Các tốn tử số học
trong chương trình shell

20


Các toán tử so sánh chuỗi
n 

Sử dụng toán tử so sánh chuỗi trong toán tử [[ ]]

21


Các toán tử kiểm tra file/thư mục

22


Các tốn tử kiểm tra file/thư mục
n 


Ví dụ: Chương trình hiển thị nội dung của 1 file nếu
nó khác rỗng
if [[ -f $1 ]] ; then
if [[ -s $1 ]]; then
cat $1
fi
fi

23


Các tốn tử logic

n 

Ví dụ: Chương trình hiển thị nội dung của 1 file nếu
nó khác rỗng
if [[ -n $1 ]] ; then
if [ -s $1 –a –f $1 ]; then
cat $1
fi
fi
24


×