Nếu ví dụ sau, đặt IFS
biến môi trường thành ký tự nguồn cấp dữ liệu dòng ...
IFS=$'\n'
- Không những gì ký hiệu đô la có nghĩa là chính xác ?
- Nó làm gì trong trường hợp cụ thể này?
- Tôi có thể đọc thêm ở đâu về cách sử dụng cụ thể này (Google không cho phép các ký tự đặc biệt trong tìm kiếm và tôi không biết phải tìm kiếm gì khác)?
Tôi biết IFS
biến môi trường là gì và \n
ký tự là gì (nguồn cấp dữ liệu dòng), nhưng tại sao không sử dụng biểu mẫu sau:
IFS="\n"
(không hoạt động)?
Ví dụ: nếu tôi muốn lặp qua mọi dòng của tệp và muốn sử dụng vòng lặp for, tôi có thể làm như sau:
for line in (< /path/to/file); do
echo "Line: $line"
done
Tuy nhiên, điều này sẽ không hoạt động trừ khi IFS
được đặt thành ký tự nguồn cấp dữ liệu dòng. Để làm cho nó hoạt động, tôi phải làm điều này:
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
Lưu ý: Tôi không cần một cách khác để làm điều tương tự, tôi đã biết nhiều cách khác rồi ... Tôi chỉ tò mò về điều đó $'\n'
và tự hỏi liệu có ai có thể cho tôi lời giải thích về nó không.
\n
chỉ là một chữ cái (thoát ra) n. Bạn đúng đó'\n'
và"\n"
bị phản ứng dữ dội theo sau là n.