Lệnh Case .. esac trong Shell Script

Trong bài này chúng ta sẽ tìm hiểu lệnh case .. esac trong shell script, đây là lệnh rẻ nhánh có công dụng như lệnh if else.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nếu bạn đã từng học một ngôn ngữ lập trình bất kì thì sẽ thấy đây chính là lệnh switch case, chỉ là cú pháp trong shell script có khác biệt hơn mà thôi.

1. Cú pháp lệnh case .. esac trong shell script

Thực tế bạn có thể sử dụng lệnh if else để xử lý theo nhiều luồng khác nhau, tuy nhiên không phải lúc nào nó cũng tốt, nhất là trường hợp tất cả các luồng đều phụ thuộc vào một giá trị. Và trong trường hợp này bạn nên sử dụng lệnh case .. esac.

Cú pháp:

Bài viết này được đăng tại [free tuts .net]

case word in
   pattern1)
      Statement(s) 
      ;;
   pattern2)
      Statement(s) 
      ;;
   pattern3)
      Statement(s) 
      ;;
   *)
     Default 
     ;;
esac

Trong đó:

  • word chính là giá trị mà bạn muốn dùng để rẻ nhánh chương trình thành nhiều luồng.
  • pattern1), pattern2), ... chính là các nhánh cho mỗi trường hợp,
  • Default sẽ được chạy nếu không có nhánh nào ở trên phù hợp.

2. Ví dụ lệnh case .. esac trong shell script

Bây giờ ta sẽ làm một vài ví dụ đơn giản nhất để bạn hiểu hơn về lệnh này nhé.

Ví dụ 1: In ra màn hình thông tin của trái cây

Live Demo
#!/bin/sh

FRUIT="kiwi"

case "$FRUIT" in
   "apple") echo "An tao rat ngon." 
   ;;
   "banana") echo "Chuoi nhieu chat dinh duong." 
   ;;
   "kiwi") echo "Kiwi noi tieng o New Zealand" 
   ;;
esac

Cú pháp nó hơi rườm rà so với những ngôn ngữ lập trình như C, C++, PHP.

Khi chạy chương trình trên bạn sẽ thu được kết quả là "Kiwi noi tieng o New Zealand" bởi biến FRUIT = "kiwi".

Ví dụ 2: Viết chương trình đọc thông tin của file dựa vào tham số truyền vào của người dùng.

Bạn hãy tạo một file test.sh với nội dung như sau.

#!/bin/sh

option="${1}" 
case ${option} in 
   -f) FILE="${2}" 
      echo "File name is $FILE"
      ;; 
   -d) DIR="${2}" 
      echo "Dir name is $DIR"
      ;; 
   *)  
      echo "`basename ${0}`:usage: [-f file] | [-d directory]" 
      exit 1 # Command to come out of the program with status 1
      ;; 
esac 

Ví dụ này sẽ trả về thông tin của file như:

  • Hiển thị file name nếu tham số là -f
  • Hiển thị tên thư mục nếu tham số là -d
  • Hiển thị thông báo nếu không có tham số

Dưới đây là một vài đoạn test chạy thực tế.

$./test.sh
test.sh: usage: [ -f filename ] | [ -d directory ]
$ ./test.sh -f index.htm
$ vi test.sh
$ ./test.sh -f index.htm
File name is index.htm
$ ./test.sh -d unix
Dir name is unix
$

Trên là thông tin cơ bản về cách sử dụng lệnh case .. esac trong shell script. Nếu trong các ngôn ngữ lập trình như PHP, C, C++ ít sử dụng thì trong shell script lại sử dụng rất nhiều đấy nhé.

Cùng chuyên mục:

Hướng dẫn cấu hình Mail Server trên CentOs 6.5

Hướng dẫn cấu hình Mail Server trên CentOs 6.5

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Các ví dụ học Bash Script trong Linux cơ bản nhất

Các ví dụ học Bash Script trong Linux cơ bản nhất

Bash Script đuọc xem là mã code lập trình trên Linux ...

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Top