echo cart | { IFS= read -r spo; printf '%s\n' "$spo"; }
Yalnızca bir satır echoçıktığı sposürece ( son satırsonu karakteri değişkeni olmadan çıktısını ) çalışır echo.
Her zaman şunları yapabilirsiniz:
assign() {
eval "$1=\$(cat; echo .); $1=\${$1%.}"
}
assign spo < <(echo cart)
Aşağıdaki çözümler bashkomut dosyalarında çalışır, ancak komut bashisteminde çalışmaz :
shopt -s lastpipe
echo cat | assign spo
Veya:
shopt -s lastpipe
whatever | IFS= read -rd '' spo
whateverİlk NUL karaktere kadar olan çıktıları saklamak için ( bashdeğişkenler NUL karakterlerini yine de saklayamaz) $spo.
Veya:
shopt -s lastpipe
whatever | readarray -t spo
çıktısını depolamak için whateverde $spo dizi (dizi elemanı başına bir çizgi).