Shell và Shell Scripts trong Linux

Shell là gì ?

Shell là môi trường trong Unix/Linux mà chúng ta có thể chạy các lệnh, chương trình và Shell script. Shell cung cấp cho bạn một giao diện trong hệ thống Unix. Nó nhận lệnh từ bạn sau đó diễn dịch rồi chuyển tới nhân và có thể in kết quả xử lý ra màn hình

Các kiểu Shell

Trong Unix có hai kiểu Shell chính:

  • Kiểu Bourne Shell: sử dụng dòng nhắc lệnh là ký tự $. Bao gồm các kiểu sau:

+ Bourne Shell (sh)
+ Korn Shell (ksh)
+ Bourne Again Shell ( bash)
+ POSIX Shell ( sh)

  • Kiểu C Shell: sử dụng dòng nhắc mặc định là ký tự %. Bao gồm các kiểu sau:

+ C Shell (csh)
+TENEX/TOPS C Shell ( tcsh)

Trong blog này, chúng ta chỉ cập đến Shell trên cơ sở Bourne Shell.

Shell Scripts

Shell script là một danh sách các lệnh, được liệt kê theo thứ tự thi hành. Một Shell script tốt sẽ có các lời bình (comment) miêu tả các bước có dấu # đứng đằng trước. Có các kiểm tra điều kiện, vòng lặp, biến, thao tác với tệp, script và có thể bao gồm các hàm.

Shell script và các hàm đều được thông dịch. Điều này có nghĩa là chúng không được biên dịch.

Ví dụ về Shell Scripts

Khai báo

Giả sử chúng ta tạo một test.sh. Nên nhớ rằng tất cả các script nên có đuôi mở rộng .sh. Trước tiên bạn cần viết dòng khai báo báo với hệ thống rằng một Shell script chuẩn bị được bắt đầu. Việc này được thực hiện bằng cách sử dụng cấu trúc shebang.

#!/bin/sh

Lệnh này nói cho hệ thống rằng các lệnh theo sau được chạy bởi Bourne Shell. Nó được gọi là một shebang bởi vì ký hiệu # được gọi là một hash và ký hiệu ! được gọi là một bang.

Để tạo một script, bạn cần đặt dòng shebang lên đầu tiên sau đó mới viết lệnh

#!/bin/bash
date
cal

Lời bình

Bạn có thể đưa các lời bình để mô tả các câu lệnh trong script như sau:

#!/bin/bash
# Today's date and time
date
# Calendar
cal

Shell scripts mở rộng

Script sau sử dụng lệnh read để nhận đầu vào từ bàn phím => gán giá trị cho biến NAME => in kết quả ra màn hình

#!/bin/bash
echo "What is your name?"
read NAME
echo "Hello, $NAME"

Ví dụ thực tế

Tạo filetest.sh tại thư mục gốc của người dùng ~

vi ~/test.sh

Copy nội dung bên dưới vào rồi lưu lại

#!/bin/bash
# Today's date and time
date
# Calendar
cal

Chmod cho file để cho phép nó có thể chạy được. Nếu không chmod thì hệ thống sẽ báo lỗi Permission denied

chmod +x ~/test.sh

Bây giờ shell scripts có thể chạy với câu lệnh sau

~/test.sh

Kết quả

~/test.sh
Fri Jun  3 04:16:18 EDT 2016
      June 2016
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

Cách khác để chạy file test.sh này là bạn có thể vào trong thư mục chứa script test.sh với lệnh cd ~ rồi gõ  ./test.sh

 

loading...

Viết nhận xét