- Chuyên mục khác :
- Git cơ bản và nâng cao
- ·
- MySQL cơ bản và nâng cao
- ·
- MongoDB cơ bản và nâng cao
- ·
- SQL cơ bản và nâng cao
- ·
- Linux cơ bản và nâng cao
- Học Unix/Linux cơ bản
- Học Unix/Linux cơ bản và nâng cao
- Unix/Linux là gì ?
- Quản lý File trong Unix/Linux
- Quản lý thư mục trong Unix/Linux
- Quyền hạn/Chế độ truy cập file trong Unix
- Hướng dẫn cài đặt Unix/Linux
- Các tiện ích cơ bản: in, email trong Unix
- Filter và Pipe trong Unix/Linux
- Quản lý tiến trình trong Unix/Linux
- Các tiện ích giao tiếp mạng trong Unix/Linux
- Trình soạn thảo vi trong Unix/Linux
- Chương trình Unix Shell
- Shell là gì?
- Sử dụng các biến trong Shell
- Các biến đặc biệt trong Unix/Linux
- Sử dụng mảng trong Shell
- Các toán tử Shell cơ bản
- Điều khiển luồng trong Shell
- Vòng lặp trong Unix/Linux
- Điều khiển vòng lặp trong Unix/Linux
- Trình thay thế Shell
- Các kỹ thuật trích dẫn trong Unix/Linux
- Điều hướng IO trong Unix/Linux
- Các hàm Shell
- ManPage Help trong Unix
- Hoạt động nâng cao trong Unix/Linux
- Regular Expression trong Unix/Linux
- Cơ bản về hệ thống File trong Unix/Linux
- Quản lý người dùng trong Unix/Linux
- Hiệu năng hệ thống trong Unix/Linux
- Hệ thống ghi log trong Unix/Linux
- Signal và Trap trong Unix/Linux
- Tài liệu Unix tham khảo
- Các lệnh hữu ích trong Unix/Linux
- Hàm toán học có sẵn trong Shell
- Tài liệu tham khảo Unix/Linux
Trình thay thế (Substitution) trong Unix/Linux là gì?
Shell thực hiện phép thế khi nó gặp một biểu thức mà chứa một hoặc nhiều ký tự đặc biệt.
Ví dụ:
Dưới đây là ví dụ, trong khi in một giá trị của biến, nó sẽ được thay thế bởi giá trị của biến. Cùng thời gian đó "\n" được thay thế bởi dòng mới.
#!/bin/sh a=10 echo -e "Value of a is $a \n"
Nó sẽ tạo kết quả như dưới đây. Tại đây, chức năng -e sẽ cho phép biên dịch dãy thoát dấu chéo ngược.
Value of a is 10
Nếu không có chức năng -e thì nó tạo ra kết quả sau:
Value of a is 10\n
Dưới đây là các dãy thoát mà có thể được sử dụng bởi lệnh echo:
Dãy thoát | Miêu tả |
---|---|
\\ | Dấu chéo ngược |
\a | Dấu hiệu cảnh báo (BEL) |
\b | Phím lùi (backspace) |
\c | Gạch chéo xuống dòng |
\f | form feed |
\n | Dòng mới |
\r | Quay trở lại |
\t | Tab ngang |
\v | Tab dọc |
Bạn có thể sử dụng chức năng -E để không cho phép biên dịch dấu ngoặc chéo (mặc định).
Bạn có thể sử dụng chức năng -n để không cho phép chèn của dòng mới.
Trình thay thế lệnh (Command Substitution) trong Unix/Linux
Trình thay thế lệnh là một kỹ thuật mà bởi nó Shell thực hiện một tập hợp các lệnh đã cung cấp và sau đó thay thế vị trí kết quả của các lệnh.
Cú pháp
Trình thay thế lệnh được thực hiện khi một lệnh được cung cấp như sau:
`command`
Khi thực hiện trình thay thế lệnh, đảm bảo rằng bạn đang sử dụng 2 dấu trích dẫn đơn kiểu (`), chứ không phải là "".
Ví dụ
Trình thay thế lệnh thông thường được sử dụng để gán đầu ra của một lệnh tới một biến. Mỗi một ví dụ sau giải thích cách sử dụng trình thay thế lệnh.
#!/bin/sh DATE=`date` echo "Date is $DATE" USERS=`who | wc -l` echo "Logged in user are $USERS" UP=`date ; uptime` echo "Uptime is $UP"
Nó sẽ tạo ra kết quả sau:
Date is Thu Jul 2 03:59:57 MST 2009 Logged in user are 1 Uptime is Thu Jul 2 03:59:57 MST 2009 03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15
Trình thay thế biến (Variable Substitution) trong Unix/Linux
Sự thay thế biến cho phép người lập trình Shell thao tác giá trị của biến dựa trên trạng thái của nó.
Dưới đây là bảng cho tất cả các trình thay thế có thể:
Mẫu | Miêu tả |
---|---|
${var} | Thay thế giá trị của var. |
${var:-word} | Nếu var là null hoặc unset, thì word được thay thế cho var. Giá trị của var không thay đổi. |
${var:=word} | Nếu var là null hoặc unset, var được thiết lập là giá trị của word . |
${var:?message} | Nếu var là null hoặc unset, message được in là lỗi. Lệnh này kiểm tra xem các biến có được thiết lập đúng không. |
${var:+word} | Nếu var được thiết lập, word được thay thế cho var. Giá trị của var không thay đổi. |
Ví dụ:
Dưới đây là ví dụ minh họa các trạng thái đa dạng của trình thay thế trên:
#!/bin/sh echo ${var:-"Variable is not set"} echo "1 - Value of var is ${var}" echo ${var:="Variable is not set"} echo "2 - Value of var is ${var}" unset var echo ${var:+"This is default value"} echo "3 - Value of var is $var" var="Prefix" echo ${var:+"This is default value"} echo "4 - Value of var is $var" echo ${var:?"Print this message"} echo "5 - Value of var is ${var}"
Nó sẽ tạo ra kết quả sau:
Variable is not set 1 - Value of var is Variable is not set 2 - Value of var is Variable is not set 3 - Value of var is This is default value 4 - Value of var is Prefix Prefix 5 - Value of var is Prefix
Các bài học UNIX phổ biến khác tại s2sontech:
- Quản lý File
- Thư mục
- Quyền truy cập File
- Cài đặt Unix/Linux
- Các tiện ích cơ bản
- Các Pipe & Bộ lọc (Filter)
Bình luận (0)