Biến trong tập lệnh
Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 68 trên 82.
Biến giúp các tập lệnh của bạn linh hoạt và có thể tái sử dụng. Thay vì ghi cứng các giá trị, bạn có thể lưu chúng vào biến và tham chiếu đến chúng trong toàn bộ tập lệnh.
Để tạo biến trong một script, hãy dùng cú pháp giống như bạn đã học trong terminal: không có khoảng trắng quanh dấu bằng. Để dùng giá trị của biến, thêm dấu đô la trước tên biến:
#!/bin/bash
greeting="Hello"
name="World"
echo "$greeting, $name!"Tập lệnh này in ra Hello, World!. Các biến greeting và name lưu văn bản sẽ được thay thế khi tập lệnh chạy.
Biến đặc biệt hữu ích khi bạn cần dùng cùng một giá trị nhiều lần. Nếu bạn tham chiếu đến đường dẫn tệp ở nhiều nơi, lưu đường dẫn đó vào một biến nghĩa là bạn chỉ cần thay đổi một lần:
#!/bin/bash
backup_dir="/home/user/backups"
echo "Creating backup in $backup_dir"
mkdir -p "$backup_dir"Hãy chú ý đến dấu ngoặc kép quanh "$backup_dir". Đặt biến trong dấu ngoặc kép là một thói quen tốt vì cách này xử lý chính xác các đường dẫn hoặc giá trị có chứa dấu cách. Nếu không có dấu ngoặc kép, một đường dẫn như /my documents sẽ khiến lệnh của bạn bị lỗi.
Biến trong các tập lệnh hoạt động giống như trong terminal, nhưng chỉ tồn tại khi tập lệnh đang chạy. Khi tập lệnh chạy xong, các biến đó sẽ biến mất.
Thử thách
DễTạo một shell script có tên intro.sh sử dụng các biến để hiển thị một lời nhắn được cá nhân hóa.
Script của bạn cần:
- Bắt đầu bằng dòng shebang (
#!/bin/bash) - Tạo một biến có tên
languagevới giá trịBash - Tạo một biến có tên
skillvới giá trịscripting - Dùng
echođể in cả hai biến theo định dạng:Learning Bash scripting!
Cho script quyền thực thi rồi chạy script. Kết quả đầu ra sẽ là:
Learning Bash scripting!Bọc mỗi dòng bạn viết trong dấu nháy đơn:
echo 'echo "Hello $name"' >> script.sh. Dấu nháy đơn ngăn shell thay thế$nametrong khi ghi tệp, nhờ đó script giữ nguyên biến và mở rộng biến khi chạy. Dấu nháy kép sẽ thay thế giá trị ngay lập tức.
Gợi ý: Tạo script bằng
echokết hợp với chuyển hướng. Nhớ tham chiếu đến các biến bằng$trong câu lệnh echo, nhưecho "Learning $language $skill!"
Tự làm thử
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản
4Thư mục
Tạo thư mụcSao chép thư mụcDi chuyển và đổi tên thư mụcXóa thư mụcÔn tập: thao tác với thư mục7Nội dung tệp
Head và tailĐếm từLệnh sortLệnh uniqueCơ bản về grepGrep với các cờÔn tập: Thám tử văn bản13Cơ bản về viết tập lệnh shell
Tập lệnh shell là gìTạo và chạy tập lệnhBiến trong tập lệnhĐầu vào của người dùng trong tập lệnhCâu lệnh ifVòng lặp forVòng lặp whileÔn tập: đoán số2Điều hướng
In đường dẫn thư mục hiện tạiLiệt kê tệpChuyển thư mụcĐường dẫn tuyệt đối và tương đốiThư mục chính và thư mục gốcÔn tập: tìm đường8Chuyển hướng
Đầu ra chuẩnGhi đè vào tệpGhi thêm vào tệpĐầu vào chuẩnLỗi chuẩnÔn tập: Công cụ tạo nhật ký6Ký tự đại diện và mẫu
Ký tự đại diện dấu saoKý tự đại diện dấu hỏiKý tự đại diện trong ngoặc vuôngKết hợp ký tự đại diệnÔn tập: thao tác có chọn lọc9Đường ống
Đường ống là gìNối hai lệnh bằng đường ốngNối nhiều lệnh bằng đường ốngDùng đường ống với grepÔn tập: luồng xử lý dữ liệuTự luyện tập: Playground Terminal