Bạn không đánh mất nó trong bài tập mà là một tiếng vang. Bạn có thể thấy rõ điều này nếu bạn:
echo "${out}"
Bạn sẽ thấy hiệu ứng tương tự với tập lệnh sau:
x="Hello,
I
am
a
string
with
newlines"
echo "====="
echo ${x}
echo "====="
echo "${x}"
echo "====="
kết quả đầu ra:
=====
Hello, I am a string with newlines
=====
Hello,
I
am
a
string
with
newlines
=====
Và, không liên quan đến câu hỏi của bạn nhưng dù sao tôi cũng muốn đề cập đến nó, tôi thích sử dụng cấu trúc $ () hơn là các dấu gạch ngược, chỉ vì lợi ích bổ sung là có thể lồng các lệnh. Vì vậy, dòng script của bạn trở thành:
out=$(grep apache README)
Bây giờ điều đó có thể trông không khác gì (và không phải vậy) nhưng nó có thể tạo ra các lệnh phức tạp hơn như:
lines_with_nine=$(grep $(expr 7 + 2) inputfile)