Shell Script – Tiếp Nối (P3)

Tram Ho

Chúng ta tiếp tục cùng tìm hiểu những phần tiếp theo của shell script nhé !
?Case trong shellscript

▪️ Câu lệnh case cách hoạt động tương tự như if .. then .. else. Cú pháp của nó khá đơn giản:

  • Kết quả trả về:

  • case $INPUT_STRING – ở đây ta kiểm tra giá trị của biến INPUT_STRING
  • Các option được liệt kê và theo sau nó là một dấu ) ví dụ như 16)17).
  • Điều này có nghĩa là nếu INPUT_STRING trùng với 16 thì code bên trong trường hợp đó sẽ được thực thi, cho đến dấu ;;
  • Nếu INPUT_STRING không trùng với trường hợp 16 hay 17 thì nó sẽ rơi vào trường hợp còn lại (trong ví dụ trên là *)) thì thông báo I don't understand được in và vòng lặp vẫn tiếp tục.
  • Toàn bộ câu lệnh case được kết thúc bằng câu lệnh esac.Sau đó chúng ta kết thúc vòng lặp while bằng câu lệnh done.
? Variables trong shellscript (Phần 2)
  • Nhóm biến $0..$9$#.
  • $0 – Tên của tập lệnh Bash.
  • $1- $9– 9 đối số đầu tiên cho tập lệnh Bash. (như đã đề cập ở trên)
  • $# – Có bao nhiêu đối số được truyền cho tập lệnh Bash.
  • [email protected] – Tất cả các đối số được cung cấp cho tập lệnh Bash.
  • $? – Trạng thái thoát của quy trình chạy gần đây nhất.
  • $$ – ID tiến trình của tập lệnh hiện tại.
  • $USER – Tên người dùng của người dùng đang chạy tập lệnh.
  • $HOSTNAME – Tên máy chủ của máy mà tập lệnh đang chạy.
  • $SECONDS – Số giây kể từ khi tập lệnh được bắt đầu.
  • $RANDOM – Trả về một số ngẫu nhiên khác nhau mỗi lần được nhắc đến.
  • $LINENO – Trả về số dòng hiện tại trong tập lệnh Bash.
  • Chúng ta sẽ đi vào ví dụ để hiểu rõ hơn nhé

  • Kết quả trả về là:

  • Nếu ta thử truyền cho nó 3 tham số ta sẽ được kết quả như sau:

  • Lưu ý rằng giá trị của $0 thay đổi tùy thuộc vào cách tập lệnh được gọi. Để chỉ cho output file name ra ngoài màn hình ta có thể dùng:

  • $#$1 .. $9 được đặt tự động bởi shellscript.
  • Chúng ta có thể lấy hơn 9 tham số bằng cách sử dụng lệnh shift:

  • Ví dụ:

  • Tập lệnh trên sử dụng shift cho đến khi $# giảm đến 0.

? Số học (Arithmetic)

▪️ Câu lệnh let

  • let là một hàm dựng sẵn của Bash cho phép chúng ta thực hiện số học đơn giản. Nó tuân theo định dạng cơ bản
    ( lưu ý ở đây ta sẽ dùng #!/bin/bash thay cho #!/bin/sh do nó không hỗ trợ let ).

  • Ví dụ:

– Ở ví dụ trên:

  • Dòng 4 – Đây là định dạng cơ bản. Lưu ý rằng nếu ta không đặt dấu ngoặc kép quanh biểu thức thì nó phải được viết không có khoảng trắng.
  • Dòng 7 – Lần này ta đã sử dụng các trích dẫn cho phép ta loại bỏ biểu thức để làm cho nó dễ đọc hơn.
  • Dòng 10 – Đây là một cách để tăng giá trị của biến number lên 1. Nó giống như viết “number = number + 1”.
  • Dòng 16 – Ta cũng có thể bao gồm các biến khác trong biểu thức.
  • Và kết quả trả về:

  • Ngoài ra, bạn cũng có thể thử với các toán tử khác như:


▪️ Câu lệnh expr

  • expr tương tự như let tuy nhiên thay vì nó lưu kết quả vào một biến thì nó sẽ in câu trả lời ra ngoài màn hình luôn.
  • Không giống như let, nó ko cần đặt biểu thức trong dấu ngoặc kép.
  • Ta cũng cần phải có khoảng trắng giữa các item trong biểu thức.
  • Ví dụ:

  • Dòng 4 – Đây là định dạng cơ bản. Lưu ý rằng phải có khoảng trắng giữa các mục và không có dấu ngoặc kép.
  • Dòng 6 – Nếu chúng ta đặt dấu ngoặc kép quanh biểu thức thì biểu thức sẽ không được thực hiện mà thay vào đó được in.
  • Dòng 8 – Nếu chúng ta không đặt khoảng trắng giữa các mục của biểu thức thì biểu thức sẽ không được thực hiện mà thay vào đó được in.
  • Dòng 10 – Một số ký tự có ý nghĩa đặc biệt với Bash, vì vậy chúng ta phải thoát khỏi chúng (đặt dấu gạch chéo ngược trước) để loại bỏ ý nghĩa đặc biệt của chúng.
  • Dòng 12 – Ở đây ta cho phép ta in ra số dư của phép chia trên.
  • Dòng 14 – Lần này ta sử dụng expr trong lệnh thay thế để lưu kết quả vào biến number.
  • Kết quả trả về:


Bài viết lần này, có lẽ mình xin kết thúc tại đây thôi
Trong bài sau, mình sẽ tiếp tục nghiên cứu thêm về Arithmetic hay Function,… của Shell Script nhé!
Cảm ơn các bạn đã đọc bài viết của mình

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo