echo cart | { IFS= read -r spo; printf '%s\n' "$spo"; }
Yalnızca bir satır echo
çıktığı spo
sü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 bash
komut dosyalarında çalışır, ancak komut bash
isteminde ç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 ( bash
değişkenler NUL karakterlerini yine de saklayamaz) $spo
.
Veya:
shopt -s lastpipe
whatever | readarray -t spo
çıktısını depolamak için whatever
de $spo
dizi (dizi elemanı başına bir çizgi).