Shell Scripting Basics
Chỉ định thông dịch Shebang
Trên các shell script thường có chỉ định thông dịch “Shebang”, được sử dụng để báo cho hệ điều hành biết trình thông dịch nào sẽ sử dụng để phân tích cú pháp phần còn lại của tệp.
#!interpreter [arguments]
Chỉ định thông dịch bắt buộc là line đầu tiên trong script, bắt đầu bằng #!
và theo sau là đường dẫn tuyệt đối đến tệp nhị phân của trình thông dịch. Ví dụ:
#! /bin/bash
– Sử dụng bash để thông dịch#! /usr/bin/env perl
– Sử dụng env để tìm path tới trình thông dịch perl#! /usr/bin/python
– Sử dụng python để thông dịch
Ví dụ một shell script đơn giản, chỉ định sử dụng bash để thông dịch
#! /bin/bash
echo -n "Enter the firstname: "
read firstname
echo -n "Enter the lastname: "
read lastname
echo "Hello $firstname $lastname"
I/O redirection
I/O redirection là một tập hợp các phương thức được sử dụng để chuyển hướng đầu vào tiêu chuẩn (standard input – keyboard) hoặc đầu ra tiêu chuẩn (standard output – terminal).
- Ký hiệu
>
– Chuyển hướng đầu ra tiêu chuẩn của một lệnh vào một file (có thể hiểu là output của lệnh vào file). Tạo mới nếu file chưa tồn tại và ghi đè nếu file đã tồn tại. - Ký hiệu
>>
– Append kết quả của lệnh vào file nếu đã tồn tại. - Ký hiệu
2>
– Chuyến hướng lỗi của một lệnh vào một file. Tạo mới nếu file chưa tồn tại và ghi đè nếu file đã tồn tại. - Ký hiệu
2>>
– Append lỗi của lệnh vào file nếu đã tồn tại.
Command substitution
Sử dụng $(command)
hoặc `command`
để thay command bằng output của lệnh đó. Ví dụ, lệnh dưới đây lưu output của pwd
vào biến here
here=$(pwd)
Batch & concurrent modes
Batch mode: Các lệnh chạy tuần tự, ví dụ command1; command2
thì command2 chỉ chạy khi command1 đã hoàn thành.
Concurrent mode: Các lệnh chạy song song, ví dụ command1 & command2
thì command1 và command2 chạy đồng thời.