Unix / Linux - Thay thế Shell
Thay thế là gì?
Shell thực hiện thay thế khi nó gặp một biểu thức có chứa một hoặc nhiều ký tự đặc biệt.
Thí dụ
Ở đây, giá trị in của biến được thay thế bằng giá trị của nó. Đồng thời,"\n" được thay thế bằng một dòng mới -
#!/bin/sh
a=10
echo -e "Value of a is $a \n"
Bạn sẽ nhận được kết quả sau. Đây-e tùy chọn cho phép giải thích các thoát dấu gạch chéo ngược.
Value of a is 10
Sau đây là kết quả mà không có -e tùy chọn -
Value of a is 10\n
Các chuỗi thoát sau có thể được sử dụng trong lệnh echo:
Sr.No. | Thoát & Mô tả |
---|---|
1 | \\ dấu gạch chéo ngược |
2 | \a cảnh báo (BEL) |
3 | \b xóa lùi |
4 | \c chặn dòng mới theo sau |
5 | \f thức ăn dạng |
6 | \n dòng mới |
7 | \r vận chuyển trở lại |
số 8 | \t Tab ngang |
9 | \v tab dọc |
Bạn có thể dùng -E tùy chọn để vô hiệu hóa việc giải thích các dấu gạch chéo ngược thoát ra (mặc định).
Bạn có thể dùng -n tùy chọn để vô hiệu hóa việc chèn một dòng mới.
Thay thế lệnh
Thay thế lệnh là cơ chế mà trình bao thực hiện một tập hợp các lệnh nhất định và sau đó thay thế đầu ra của chúng vào vị trí của các lệnh.
Cú pháp
Việc thay thế lệnh được thực hiện khi một lệnh được đưa ra dưới dạng:
`command`
Khi thực hiện thay thế lệnh, hãy đảm bảo rằng bạn sử dụng dấu ngoặc kép, không phải ký tự trích dẫn đơn lẻ.
Thí dụ
Thay thế lệnh thường được sử dụng để gán đầu ra của lệnh cho một biến. Mỗi ví dụ sau thể hiện sự 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"
Khi thực hiện, bạn sẽ nhận được 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
Thay thế biến
Thay thế biến cho phép người lập trình shell thao tác giá trị của một biến dựa trên trạng thái của nó.
Đây là bảng sau đây cho tất cả các thay thế có thể -
Sr.No. | Biểu mẫu & Mô tả |
---|---|
1 | ${var} Thay thế giá trị của var . |
2 | ${var:-word} Nếu var là null hoặc không được đặt, từ sẽ được thay thế chovar. Giá trị của var không thay đổi. |
3 | ${var:=word} Nếu var là null hoặc chưa được đặt, var được đặt thành giá trị củaword. |
4 | ${var:?message} Nếu var là null hoặc không được đặt, thông báo sẽ được in thành lỗi chuẩn. Điều này kiểm tra xem các biến đã được đặt đúng chưa. |
5 | ${var:+word} Nếu var được đặt, từ sẽ được thay thế cho var. Giá trị của var không thay đổi. |
Thí dụ
Sau đây là ví dụ để hiển thị các trạng thái khác nhau của sự 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}"
Khi thực hiện, bạn sẽ nhận được 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