Tôi có một biến đa dòng và tôi chỉ muốn dòng đầu tiên trong biến đó. Kịch bản sau đây thể hiện vấn đề:
#!/bin/bash
STRINGTEST="Onlygetthefirstline
butnotthesecond
orthethird"
echo " Take the first line and send to standard output:"
echo ${STRINGTEST%%$'\n'*}
# Output is as follows:
# Onlygetthefirstline
echo " Set the value of the variable to the first line of the variable:"
STRINGTEST=${STRINGTEST%%$'\n'*}
echo " Send the modified variable to standard output:"
echo $STRINGTEST
# Output is as follows:
# Onlygetthefirstline butnotthesecond orthethird
Câu hỏi: Tại sao ${STRINGTEST%%$'\n'*}
trả về dòng đầu tiên khi được đặt sau một echo
lệnh, nhưng thay thế dòng mới bằng khoảng trắng khi được đặt sau khi gán?
$'...'
thay vì bash.