Cơ bản về lập trình Shell (Bash Script)

0 0 0

Người đăng: Hoang Minh Dai

Theo Viblo Asia

Shell Script là một tập hợp các lệnh được viết trong tệp văn bản và có thể thực thi bởi trình thông dịch shell (ví dụ: bash, sh, zsh).
Bash (Bourne Again Shell) là một trong những shell phổ biến nhất trong Linux.


📝 1. Tạo và chạy một Bash Script cơ bản

1.1. Tạo một tệp script

Mở terminal và tạo một tệp script:

$ nano script.sh

Thêm nội dung sau:

#!/bin/bash
echo "Xin chào, đây là script đầu tiên của bạn!"

Lưu và đóng tệp (Ctrl + XYEnter).

1.2. Cấp quyền thực thi

$ chmod +x script.sh

1.3. Chạy script

$ ./script.sh

🎯 2. Cấu trúc cơ bản của Bash Script

2.1. Dòng khai báo shell (shebang)

Dòng đầu tiên (#!/bin/bash) cho biết script sẽ được thực thi bởi Bash.

#!/bin/bash

2.2. Biến trong Bash

2.2.1. Biến mặc định

  • Khai báo biến
name="Hoàng Minh"
age=25
  • Gọi biến
echo "Tên của tôi là $name và tôi $age tuổi."
  • Chú ý: Không có khoảng trắng xung quanh =.

2.2.2. Biến môi trường

echo "Tên người dùng: $USER"
echo "Thư mục hiện tại: $PWD"
echo "Shell đang dùng: $SHELL"

2.2.3. Biến từ đầu vào ($1, $2, ... "$@")

Lấy đối số từ dòng lệnh:

#!/bin/bash
echo "Tham số đầu tiên: $1"
echo "Tham số thứ hai: $2"
echo "Tất cả tham số: $@"

Chạy với đối số:

$ ./script.sh XinChao 2024

🔄 3. Cấu trúc điều kiện

3.1. Câu lệnh if-else

#!/bin/bash
read -p "Nhập số: " num
if [ $num -gt 10 ]; then echo "Số lớn hơn 10"
else echo "Số nhỏ hơn hoặc bằng 10"
fi

Toán tử so sánh:

Toán tử Ý nghĩa
-eq Bằng (==)
-ne Không bằng (!=)
-gt Lớn hơn (>)
-lt Nhỏ hơn (<)
-ge Lớn hơn hoặc bằng (>=)
-le Nhỏ hơn hoặc bằng (<=)

🔁 4. Vòng lặp

4.1. Vòng lặp for

#!/bin/bash
for i in {1..5}; do echo "Lần lặp: $i"
done

4.2. Vòng lặp while

#!/bin/bash
count=1
while [ $count -le 5 ]; do echo "Lần: $count" ((count++))
done

📂 5. Xử lý tệp và thư mục

5.1. Kiểm tra tệp/thư mục

#!/bin/bash
file="test.txt" if [ -f "$file" ]; then echo "Tệp tồn tại!"
else echo "Tệp không tồn tại!"
fi
Toán tử Ý nghĩa
-f Kiểm tra tệp có tồn tại
-d Kiểm tra thư mục có tồn tại
-e Kiểm tra tệp hoặc thư mục có tồn tại

🎤 6. Nhập dữ liệu từ người dùng

#!/bin/bash
read -p "Nhập tên của bạn: " name
echo "Xin chào, $name!"

7. Hàm trong Bash

#!/bin/bash
say_hello() { echo "Xin chào, $1!"
} say_hello "Minh"

8. Script chạy nền & lập lịch

8.1. Chạy script nền

$ ./script.sh &

8.2. Lập lịch với cron

Mở cron:

$ crontab -e

Thêm:

0 * * * * /path/to/script.sh # Chạy mỗi giờ

📌 9. Một số lệnh hữu ích trong Bash

Lệnh Mô tả
date Hiển thị ngày giờ hiện tại
whoami Hiển thị user hiện tại
pwd Hiển thị thư mục hiện tại
ls Liệt kê thư mục
grep Tìm kiếm nội dung trong tệp
sed Chỉnh sửa dòng trong tệp
awk Xử lý văn bản theo cột

🎯 10. Ví dụ Script Thực Tế

10.1. Script sao lưu tệp

#!/bin/bash
src="/home/user/Documents"
dest="/home/user/backup_$(date +%Y%m%d).tar.gz" tar -czf $dest $src
echo "Sao lưu xong: $dest"

10.2. Script kiểm tra kết nối mạng

#!/bin/bash
ping -c 1 google.com &> /dev/null if [ $? -eq 0 ]; then echo "Mạng đang hoạt động!"
else echo "Mạng bị lỗi!"
fi

🎯 Tóm tắt

  1. Tạo script bằng cách viết tệp .sh.
  2. Cấp quyền thực thi bằng chmod +x.
  3. Sử dụng biến, vòng lặp, điều kiện trong script.
  4. Làm việc với tệp/thư mụcxử lý đầu vào từ người dùng.
  5. Tạo hàm và lập lịch tự động với cron.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Chinh phục Bash Shell Part 2

Part 1 mình đã đề cập đến shebang, Navigating directories, Listing file các bạn có thể xem lại ở đây nhé. 5. Sử dụng cat. Chức năng chính của cat là in ra nội dung của file nào đó.

0 0 31

- vừa được xem lúc

Clone và pull nhiều source git 1 lúc với Bash script

Khi đi làm ở các công ty, chắc hẳn các bạn đã gặp tình trạng được giao 1 task sửa một tính năng trong một source mới mà bạn chưa làm hoặc bạn mới vào công ty. Nhưng để chạy được source thì bạn phải cl

0 0 13

- vừa được xem lúc

[Linux Trick] Tự động tắt bàn phím laptop khi gắn bàn phím rời trên Linux

Có ai như mình không, đặc biệt rất thích mang laptop ra cafe ngồi gõ, không những thế mà lại còn thích dùng cả phím cơ nữa chứ. Thế nhưng đời không như là mơ, có những quán cà phê với bàn và diện tích

0 0 14

- vừa được xem lúc

Tìm hiểu về lập trình Shell

Mình đã suy nghĩ rất nhiều về việc lựa chọn chủ đề cho bài viết này. Thực sự là có rất nhiều chủ đề hay ho song để bạn đọc có thể dễ dàng setup và thực hành theo thì không phải chủ đề nào cũng phù hợp

0 0 103

- vừa được xem lúc

Bắt đầu với Lập trình Shell

Mặc dù chúng ta đã quá quen với shell script. Nhưng sau đây, tôi vẫn muốn giới thiệu về cách để viết 1 shell script cho những bạn đang cần nó.

0 0 95

- vừa được xem lúc

Cài Oh My Zsh, Powerlevel10k, tối ưu và sử dụng phím tắt cho Terminal

1.Mở đầu. . .

0 0 41