echo cart | { IFS= read -r spo; printf '%s\n' "$spo"; }
จะใช้งานได้ (เก็บผลลัพธ์echoโดยไม่มีอักขระบรรทัดใหม่ต่อท้ายลงในspoตัวแปร) ตราบใดที่echoเอาต์พุตเพียงหนึ่งบรรทัด
คุณสามารถทำได้:
assign() {
eval "$1=\$(cat; echo .); $1=\${$1%.}"
}
assign spo < <(echo cart)
วิธีแก้ไขปัญหาต่อไปนี้สามารถใช้งานได้กับbashสคริปต์ แต่ไม่แสดงbashพร้อมท์:
shopt -s lastpipe
echo cat | assign spo
หรือ:
shopt -s lastpipe
whatever | IFS= read -rd '' spo
ในการจัดเก็บการส่งออกของwhateverถึงตัวละคร NUL แรก ( bashตัวแปรที่ไม่สามารถเก็บอักขระ NUL อยู่แล้ว) $spoใน
หรือ:
shopt -s lastpipe
whatever | readarray -t spo
เพื่อเก็บผลลัพธ์whateverใน$spo อาร์เรย์ (หนึ่งบรรทัดต่อองค์ประกอบอาร์เรย์)