Tôi đang đọc một cuốn sách kịch bản shell Linux và đã tìm thấy cảnh báo sau:
"Thay thế lệnh tạo ra cái được gọi là lớp con để chạy lệnh kèm theo. Lớp con là lớp vỏ con riêng biệt được tạo từ lớp vỏ đang chạy tập lệnh. Do đó, bất kỳ biến nào bạn tạo trong tập lệnh đều không có sẵn cho lệnh của lớp con".
Tôi đã cố gắng tạo một biến trong CLI bash shell hiện tại của tôi và sau đó nhập lớp con để kiểm tra xem tôi có thể in nó trên màn hình hay không. Vì vậy, có, tôi không thể làm điều đó, dường như là theo trích dẫn ở trên. Tuy nhiên, tôi đã chạy đoạn script sau với lệnh thay thế:
#!/bin/bash
var=5.5555
ans=$(echo $var)
echo $ans
Và kết quả là:
5.5555
Theo tôi hiểu, nó không nên in giá trị của var vì subshell không thể "nhìn thấy". Tại sao nó xảy ra?