Shell Scripting Phần I: Bắt đầu với bash scripting

theanh

Administrator
Nhân viên
Xin chào. Đây là phần đầu tiên trong loạt bài hướng dẫn về Linux. Khi viết bài hướng dẫn này, tôi cho rằng bạn là người mới bắt đầu trong việc tạo tập lệnh Linux và rất muốn học. Trong suốt loạt bài này, trình độ sẽ tăng lên, vì vậy tôi chắc chắn sẽ có điều gì đó mới mẻ ngay cả đối với những người dùng nâng cao hơn. Vậy chúng ta hãy bắt đầu nhé.

Giới thiệu​

Hầu hết các hệ điều hành của chúng ta bao gồm cả Linux đều có thể hỗ trợ nhiều giao diện người dùng (UI) khác nhau. Giao diện người dùng đồ họa (GUI) là giao diện máy tính để bàn thân thiện với người dùng cho phép người dùng nhấp vào biểu tượng để chạy ứng dụng. Loại giao diện khác là Giao diện dòng lệnh (CLI) hoàn toàn là văn bản và chấp nhận lệnh từ người dùng. Một shell, trình thông dịch lệnh đọc lệnh thông qua CLI và gọi chương trình. Hầu hết các hệ điều hành hiện nay đều cung cấp cả hai giao diện bao gồm cả bản phân phối Linux.

Khi sử dụng shell, người dùng phải nhập một loạt lệnh tại terminal. Không vấn đề gì nếu người dùng chỉ phải thực hiện tác vụ một lần. Tuy nhiên, nếu tác vụ phức tạp và phải lặp lại nhiều lần, người dùng có thể thấy hơi nhàm chán. May mắn thay, có một cách để tự động hóa các tác vụ của shell. Điều này có thể được thực hiện bằng cách viết và chạy các tập lệnh shell. Tập lệnh shell là một loại tệp bao gồm một chuỗi và trình tự các lệnh được shell Linux hỗ trợ.

Tại sao nên tạo tập lệnh shell?​

Tập lệnh shell là một công cụ rất hữu ích trong việc tự động hóa các tác vụ trong HĐH Linux. Nó cũng có thể được sử dụng để kết hợp các tiện ích và tạo các lệnh mới. Bạn có thể kết hợp các chuỗi lệnh dài và lặp lại thành một lệnh đơn giản. Tất cả các tập lệnh có thể được chạy mà không cần biên dịch, do đó người dùng sẽ có cách tạo nguyên mẫu lệnh một cách liền mạch.

Tôi mới làm quen với môi trường Linux, tôi vẫn có thể học cách tạo tập lệnh shell chứ?​

Tất nhiên rồi! Việc tạo tập lệnh shell không yêu cầu kiến thức phức tạp về Linux. Chỉ cần có kiến thức cơ bản về các lệnh phổ biến trong CLI Linux và trình soạn thảo văn bản là đủ. Nếu bạn là người mới bắt đầu và không có kiến thức nền tảng về Linux Command Line, bạn có thể thấy hướng dẫn này hữu ích.

Tạo tập lệnh shell đầu tiên của tôi​

bash (Bourne-Again Shell) là shell mặc định trong hầu hết các bản phân phối Linux và OS X. Đây là một dự án GNU nguồn mở nhằm thay thế sh (Bourne Shell), shell Unix gốc. Nó được Brian Fox phát triển và phát hành vào năm 1989.

Bạn phải luôn nhớ rằng mỗi tập lệnh Linux sử dụng bash sẽ bắt đầu bằng dòng sau:
Mã:
#!/bin/bash
Mỗi tập lệnh Linux đều bắt đầu bằng dòng (#!). Dòng bang chỉ định đường dẫn đầy đủ /bin/bash của trình thông dịch lệnh sẽ được sử dụng để chạy tập lệnh.

Xin chào thế giới!​

Mọi ngôn ngữ lập trình đều bắt đầu bằng màn hình Hello World!. Chúng tôi sẽ không kết thúc truyền thống này và tạo phiên bản đầu ra giả của riêng mình trong tập lệnh Linux.

Để bắt đầu tạo tập lệnh, hãy làm theo các bước dưới đây:

Bước 1: Mở trình soạn thảo văn bản. Tôi sẽ sử dụng gedit cho ví dụ này. Để mở gedit bằng thiết bị đầu cuối, hãy nhấn CTRL + ALT + T trên bàn phím của bạn và nhập gedit. Bây giờ, chúng ta có thể bắt đầu viết tập lệnh của mình.

Bước 2: Nhập lệnh sau vào trình soạn thảo văn bản:
Mã:
#!/bin/bash 
 echo "Hello World"
Bước 3: Bây giờ, lưu tài liệu với tên tệp hello.sh. Lưu ý rằng mỗi tập lệnh sẽ có phần mở rộng tệp .sh.

Bước 4: Vì lý do bảo mật được các bản phân phối Linux áp dụng, các tệp và tập lệnh không thể thực thi theo mặc định. Tuy nhiên, chúng ta có thể thay đổi điều đó cho tập lệnh của mình bằng lệnh chmod trong Linux CLI. Đóng ứng dụng gedit và mở một thiết bị đầu cuối. Bây giờ, nhập lệnh sau:
Mã:
chmod +x hello.sh
Dòng trên đặt quyền thực thi cho tệp hello.sh. Quy trình này chỉ cần thực hiện một lần trước khi chạy tập lệnh lần đầu tiên.

Bước 5: Để chạy tập lệnh, hãy nhập lệnh sau tại terminal:
Mã:
./hello.sh
Chúng ta hãy xem một ví dụ khác. Lần này, chúng ta sẽ kết hợp hiển thị một số thông tin hệ thống bằng cách sử dụng lệnh whoami và date vào tập lệnh hello của mình.

Mở hello.sh trong trình soạn thảo văn bản của chúng ta và chúng ta sẽ chỉnh sửa tập lệnh của mình bằng cách nhập:
Mã:
#!/bin/bash
 echo "Xin chào $(whoami) !"
 echo "Ngày hôm nay là $(date)"
Lưu các thay đổi chúng ta đã thực hiện trong tập lệnh và chạy tập lệnh (Bước 5 trong ví dụ trước) bằng cách nhập:
Mã:
./hello.sh
Đầu ra của tập lệnh sẽ là:



Trong ví dụ trước, các lệnh whoami và date đã được sử dụng bên trong lệnh echo. Điều này chỉ có nghĩa là tất cả các tiện ích và lệnh có sẵn trong dòng lệnh cũng có thể được sử dụng trong các tập lệnh shell.

Tạo đầu ra bằng printf​

Cho đến nay, chúng ta đã sử dụng echo để in chuỗi và dữ liệu từ các lệnh trong ví dụ trước. Echo được sử dụng để hiển thị một dòng văn bản. Một lệnh khác có thể được sử dụng để hiển thị dữ liệu là lệnh printf. printf điều khiển và in dữ liệu giống như hàm printf trong C.

Dưới đây là tóm tắt về các điều khiển prinf phổ biến:
Điều khiểnCách sử dụng
\"Dấu ngoặc kép
\\Dấu gạch chéo ngược
\bDấu cách lùi
\cKhông tạo ra đầu ra nào nữa
\eThoát
\nDòng mới
\rTrả về đầu dòng
\tNgang tab
\vTab dọc
Ví dụ 3: Chúng ta sẽ mở hello.sh trước đó và đổi tất cả echo thành printf rồi chạy lại tập lệnh. Lưu ý những thay đổi xảy ra trong đầu ra của chúng ta.
Mã:
#!/bin/bash
 printf "Hello $(whoami) !"
 printf "The date today is $(date)"


Tất cả các dòng được nối với nhau vì chúng ta không sử dụng bất kỳ điều khiển nào trong lệnh printf. Do đó, lệnh printf trong Linux có cùng thuộc tính với hàm printf của C.

Để định dạng đầu ra của tập lệnh, chúng ta sẽ sử dụng hai điều khiển trong bảng tóm tắt ở trên. Để hoạt động, các điều khiển phải được chỉ định bằng \ bên trong dấu ngoặc kép của lệnh printf. Ví dụ, chúng ta sẽ chỉnh sửa nội dung trước đó của hello.sh thành:
Mã:
#!/bin/bash
 printf "Hello \t $(whoami) !\n"
 printf "The date today is $(date)\n"
Script này sẽ xuất ra nội dung sau:


Kết luận​

Trong hướng dẫn này, bạn đã học được những kiến thức cơ bản về shell scripting và có thể tạo và chạy shell script. Trong phần thứ hai của hướng dẫn, tôi sẽ giới thiệu cách khai báo biến, chấp nhận đầu vào và thực hiện các phép toán số học bằng lệnh shell.
 
Back
Bên trên