รหัสต่อไปนี้อธิบายสถานการณ์ได้ดีที่สุด เหตุใดบรรทัดสุดท้ายจึงไม่แสดงเอาต์พุตอักขระขึ้นบรรทัดใหม่ เอาต์พุตของแต่ละบรรทัดจะแสดงในความคิดเห็น ฉันใช้GNU bash เวอร์ชัน 4.1.5
echo -n $'a\nb\n' | xxd -p # 610a620a
x=$'a\nb\n' ; echo -n "$x" | xxd -p # 610a620a
echo -ne "a\nb\n" | xxd -p # 610a620a
x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # 610a62
tmp=$(somecommand; echo a)
... สิ่งนี้ได้ผลักดันจุดกลับบ้านอย่างแน่นอน ... จนกว่าฉันจะเห็นตัวอย่างแนวโน้มของฉันจะยังคงใช้echo -n a
... แต่แน่นอน! ไม่จำเป็นต้องมี-n
เพราะคำสั่งเปลี่ยนตัวจะลบขึ้นบรรทัดใหม่นำมาใช้ในกรณีใด ๆ ! ... ขอบคุณ ...
tmp=$(somecommand; echo a); tmp=${tmp%a}