Nội suy chuỗi ký tự

Fish Shell:
Nội suy chuỗi ký tự

Làm thế nào:

Trong Fish, bạn sử dụng dấu ngoặc kép và đặt biến hoặc lệnh mà bạn muốn nội suy với dấu đô la $ ngay trong chuỗi.

set name "world"
echo "Hello, $name!"

Kết quả:

Hello, world!

Để bao gồm kết quả của một lệnh trong một chuỗi:

echo "I have (count (ls)) files in this directory."

Kết quả có thể là:

I have 9 files in this directory.

Các biến và lệnh được đánh giá và gói gọn ngay vào vị trí bạn đặt chúng.

Sâu hơn

Trước Fish và các shell hiện đại khác, bạn thường phải sử dụng một tổ hợp cồng kềnh của dấu ngoặc và ghép chuỗi—hoặc dựa vào các công cụ bên ngoài—để đưa biến vào chuỗi.

Trong bash, ví dụ, nó sẽ trông như thế này:

name="world"
echo "Hello, "$name"!"

Không mượt mà lắm, phải không?

Fish không chỉ làm cho quy trình này trở nên mạch lạc hơn mà còn xử lý lỗi một cách nhẹ nhàng hơn. Nếu một biến không tồn tại, Fish sẽ chèn một chuỗi trống, giảm khả năng crash từ việc xử lý không đúng các nội suy.

Các lựa chọn thay thế cho nội suy trực tiếp bao gồm sử dụng lệnh printf:

set animal "narwhal"
printf "The %s is an awesome creature!" $animal

Kết quả:

The narwhal is an awesome creature!

Trong trường hợp này, %s là một ký tự đại diện cho biến chuỗi $animal được printf thay thế.

Về mặt triển khai, khi Fish xử lý dòng lệnh, nó phân tách các chuỗi được bao bởi dấu ngoặc kép và thay thế các biến bằng giá trị của chúng một cách trực tiếp. Điều này rất tinh tế và mô phỏng sự nội suy biến tìm thấy trong các ngôn ngữ cấp cao như Ruby hoặc PHP.

Xem thêm

Để biết thêm thông tin về việc thao tác chuỗi và viết kịch bản với Fish, hãy xem: