Để thực hiện việc đọc và xử lý các tham số trong một tập lệnh Shell Script, chúng ta sẽ nghiên cứu các ví dụ dưới đây.
Đọc và xử lý tham số trong Shell Script
Để truyền tham số vào trong 1 script (viết bằng Shell Script)
/bin/bash my-script.sh <param_1> <param_2> ... <param_n>
VD: Tạo 1 shell script có nội dung như sau:
#!/bin/bash # Path of the script echo "Script: $0" # List of the parameter echo "Parameter:" echo "- Fruit: $1" echo "- Flower: $2" echo "- Vehicle: $3"
Phân quyền cho script (Thêm quyền thực thi)
sudo chmod +x my-script.sh
Chạy script bằng command sau:
./my-script.sh apple rose bus
Trường hợp tham số có dấu khoảng cách, thì hãy bao nó bằng dấu ” hoặc “”
./my-script.sh 'custard apple' rose bus
Đọc toàn bộ tham số trong Shell Script
Tất cả tham số truyền vào, được đặt trong một biến đặc biệt đó là: $@
Để đọc và hiển thị toàn bộ tham số truyền vào chúng ta tham khảo đoạn code shell script sau:
#!/bin/bash # List all prameters for PARAM in "$@" do echo "Param: $PARAM" done
Truyền toán bộ tham số sang 1 script khác
Để truyền toàn bộ tham số sang 1 script khác tham khảo script sau:
#!/bin/bash ./another-script $@
Sử dụng Flag
Chúng ta cần truyền 3 tham số -u, -p, -f như sau:
./my-script -u vinasupport -p ebook -f docx
Để đọc các tham số input cúng ta sử dụng đoạn shell script sau:
#!/bin/bash while getopts u:p:f: option do case "${option}" in u) USER=${OPTARG};; p) PRODUCT=${OPTARG};; f) FORMAT=${OPTARG};; esac done echo "USER = $USER" echo "PRODUCT = $PRODUCT" echo "FORMAT = $FORMAT"