Câu 1#!/bin/sh ở dòng đầu của một shell script chỉ định điều gì?
Shell Script đầu tiên của bạn — Tạo và chạy nó
Tạo một tệp script bằng trình soạn thảo vi, đặt #!/bin/sh cùng một comment ở dòng đầu, thêm quyền thực thi bằng chmod +x rồi chạy bằng ./hello.sh — thực hành từng bước với sơ đồ và terminal ngay trên trình duyệt.
Tạo một script — vi và #!/bin/sh
Một shell script gom các lệnh mà bạn thường gõ vào terminal thành một tệp để bạn có thể chạy tất cả cùng một lúc.
Thay vì gõ tay một loạt bước cố định mỗi lần, bạn viết chúng vào một tệp, và bạn có thể lặp lại đúng cùng một công việc bao nhiêu lần tùy thích.
Ở đây bạn sẽ học những điều cơ bản về cách tạo và chạy một shell script.
Mở tệp bằng vi hello.sh, nhấn i để vào chế độ chèn rồi gõ nội dung, sau đó nhấn Esc rồi lưu và đóng bằng :wq (các thao tác vi cơ bản chính là những thao tác bạn đã học lần trước).
Đặt dòng đầu là #!/bin/sh, một shebang, để chỉ định shell nào sẽ chạy script.
Những dòng bắt đầu bằng # được bỏ qua như comment khi chạy.
Ngoại lệ duy nhất là dòng đầu: dù #!/... bắt đầu bằng #, nó không phải comment — nó được diễn giải đặc biệt như chỉ thị về shell nào sẽ chạy.
vi hello.sh cho ra -rw-r--r-- (không có x); chmod +x đổi nó thành -rwxr-xr-x (có x), và ./hello.sh chạy nó. Phần giữa cho thấy việc kiểm tra bằng ls -l.| Cú pháp | Ý nghĩa | Ví dụ |
|---|---|---|
vi f | Mở một tệp trong trình soạn thảo (tạo mới nếu chưa có) | vi hello.sh |
i … Esc | Viết nội dung trong chế độ chèn, Esc quay về chế độ normal | Nhấn i … Esc |
:wq | Lưu và thoát vi | :wq |
#!/bin/sh | Shebang ở dòng đầu (chỉ định shell sẽ chạy) | #!/bin/sh |
# comment | Một dòng chú thích bị bỏ qua khi chạy | # create backup |
chmod +x f | Thêm quyền thực thi cho một tệp | chmod +x hello.sh |
./f | Chạy script trong thư mục hiện tại | ./hello.sh |
>> f | Ghi thêm (append) vào cuối tệp (không ghi đè) | date >> run.log |
vi note.sh # mở script trong trình soạn thảo
# nhấn i để vào chế độ chèn và viết:
# #!/bin/sh
# # show a short message
# echo "build step 1"
# echo "build step 2"
# nhấn Esc rồi lưu và thoát bằng :wq
chmod +x note.sh # thêm quyền thực thi
./note.sh # in ra build step 1 / build step 2
Chạy nó — chmod +x và ./
Một tệp vừa mới tạo không thể chạy ngay như vậy.
Khi bạn thêm quyền thực thi bằng chmod +x file, bạn có thể chạy nó dưới dạng ./file.
./ là cách trỏ tới một tệp trong thư mục hiện tại; nếu thiếu nó, shell chỉ tìm lệnh bên trong PATH và sẽ không tìm thấy.
vi greet.sh # mở trong trình soạn thảo, viết #!/bin/sh và echo hi, lưu bằng :wq
ls -l greet.sh # chưa có quyền thực thi
chmod +x greet.sh # thêm quyền thực thi
ls -l greet.sh # một x xuất hiện ở mép trái
./greet.sh # in ra hi
Cũng có cách chạy mà không cần quyền thực thi
Khi bạn muốn chạy mà không thêm quyền thực thi, cũng có cách giao tệp cho một shell, như sh file.
Trong khóa học này, chúng ta dùng dạng cơ bản là thêm quyền thực thi và chạy bằng ./file.
Bạn có thể kiểm tra quyền thực thi đã được thêm hay chưa bằng việc có một x xuất hiện ở mép trái của ls -l hay không.
Xây một công cụ nhỏ ghi lại các lần chạy
Luồng tạo, cấp quyền và chạy mà bạn đã học có thể dùng trực tiếp trong các công cụ nhỏ thực tế.
Ở đây bạn sẽ xây một công cụ ghi log, ghi thêm "khi script được chạy" vào một tệp log duy nhất.
Khi bạn ghi thêm bằng >>, các dòng chồng lên nhau mỗi lần bạn chạy, nên về sau bạn có thể xem lại lịch sử chạy.
date >> run.log và hiển thị cat run.log, và mỗi lần lặp lại chồng thêm một dòng vào run.log.Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2Lệnh nào thêm quyền thực thi cho một script bạn đã tạo?
Câu 3Đâu là cách chạy hello.sh trong thư mục hiện tại?