Unix/Linux Shell Script - Parameters

Trong bài này bạn sẽ được học cách xử lý tham số đầu vào của một chương trình shell. Nếu bạn từng học qua lập trình thì sẽ biết với mỗi hàm sẽ có các tham số truyền vào, điều này tương đương mỗi chương trình shell có thể xem như là một hàm, và nó sẽ có tham số truyền vào.

Ví dụ khi bạn viết chương trình di chuyển file nhanh từ folder /etc sang folder /usr thì sẽ cần hai tham số đó là tên file cần di chuyển và tên mới. Ok trước tiên mình sẽ giới thiệu hàm read dùng để lấy thông tin từ bàn phím.

1. Hàm read lấy thông tin từ bàn phím

Để lấy thông tin mà người dùng nhập từ bàn phím thì bạn sử dụng hàm read.

read variable

Ví dụ:

var "Nhap ten cua ban"
read name
echo $name

2. Nhận tham số parameters trong shell

Để truyền một giá trị vào shell thông qua dòng lệnh command thì ta sẽ sử dụng tham số, cú pháp như sau:

sh sh_file_name.sh param1 param2 param3

Khi truyền vào thì thứ tự của tham số lần lượt là $1 $2 $3, ví dụ.

read.sh
echo $1
echo $2
echo $3

Bây giờ bạn hãy chạy lệnh sau: sh read.sh freetuts cuong thehalfheart thì kết quả sẽ như hình sau:

Như vậy các tham số sẽ cách nhau bằng khoảng trắng. Vậy nếu muốn truyền một chuỗi thông báo thì sao? Bạn sẽ đặt nó trong cặp nháy đơn để shell biết đó là một chuỗi, nếu không nó sẽ tách ra thành nhiều tham số.

Ví dụ
sh read.sh "Nguyen van Cuong" "thehalfheart" "freetuts.net"

3. Ví dụ viết shell script di chuyển file

Giả sử mình đang ở thư mục /usr/local/bin, bây giờ mình muốn viết shell script di chuyển một file ở thư mục này sang thư mục /temp thì làm như sau:

# Move file
mv /usr/local/bin/$1 /tmp/$2

Giả sử muốn di chuyển file freetuts và đặt tên mới là freetutsdotnet thì chạy command như sau:

sh move_file.sh freetuts freetutsdotnet

4. Lời kết

Như vậy là mình đã hướng dẫn bạn cách tiếp nhận tham số parameter trong shell script, bày này khá đơn giản, mục đích là giúp bạn biết cách lấy giá trị tham số truyền vào khi làm việc với shell script.

Nguồn: freetuts.net

-------------------#####-------------------

Series có tham khảo một số nguồn như tutorialspoint. Vì mình không muốn cài máy ảo nên sử dụng trực tiếp trên VPS luôn, và VPS mình sử dụng Ubuntu.

KHÓA HỌC ĐANG GIẢM GIÁ

FEDU - 029- Học lập trình React js và Redux từ đầu, tạo ứng dụng fullstack với Node JS + React JS

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 27 – Lập trình back-end cơ bản với nodejs & mongodb, mongooose, postgresql.

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 25 – Thiết kế hiệu ứng bằng Javascript và illustrator

(Giảng viên: NGUYỄN ĐỨC VIỆT )

XEM
FEDU - 03: Thành thạo lập trình jquery qua 20 bài tập thực hành

(Giảng viên: Nguyễn Đức Việt)

XEM
FEDU - 23 – Học thành thạo lập trình hướng đối tượng Typescript với ES6

(Giảng viên: Nguyễn Đức Việt)

XEM

BÌNH LUẬN

Đặt câu hỏi: Hãy tham gia vào group học lập trình web để tham gia thảo luận và đặt câu hỏi, với hơn 20.000 thành viên hiện đang hoạt động tại group này. Ngoài ra bạn cũng có thể đặt câu hỏi nếu cần tư vấn về các vấn đề như định hướng nghề nghiệp, những khó khăn trong quá trình học tập.

Hỗ trợ việc làm: Hãy tham gia vào group việc làm công nghệ thông tin để tìm và đăng tuyển lập trình viên. Hy vọng đây sẽ là nơi tìm kiếm việc làm lý tưởng cho bạn và nhà tuyển dụng.