echo cart | { IFS= read -r spo; printf '%s\n' "$spo"; }
Akan bekerja (menyimpan output echo
tanpa karakter baris baru ke dalam spo
variabel) selama echo
output hanya satu baris.
Anda selalu bisa melakukan:
assign() {
eval "$1=\$(cat; echo .); $1=\${$1%.}"
}
assign spo < <(echo cart)
Solusi berikut akan berfungsi dalam bash
skrip, tetapi tidak pada bash
prompt:
shopt -s lastpipe
echo cat | assign spo
Atau:
shopt -s lastpipe
whatever | IFS= read -rd '' spo
Untuk menyimpan output whatever
hingga karakter NUL pertama ( bash
variabel tetap tidak dapat menyimpan karakter NUL) di $spo
.
Atau:
shopt -s lastpipe
whatever | readarray -t spo
untuk menyimpan output whatever
dalam $spo
array (satu baris per elemen array).