Это не имеет проблемы с нежелательным смещением, также внутреннее пустое пространство не изменяется (при условии, что для $IFS
установлено значение по умолчанию, равное ' \t\n'
).
Он читает до первой новой строки (и не включает ее) или до конца строки, в зависимости от того, что наступит раньше, и удаляет любое сочетание начального и конечного пробела и символов \t
. Если вы хотите сохранить несколько строк (а также убрать начальные и конечные переводы строк), используйте read -r -d '' var << eof
вместо этого; заметьте, однако, что если ваш ввод содержит \neof
, он будет обрезан непосредственно перед этим. (Другие формы пробелов, а именно \r
, \f
и \v
, не удалены, даже если вы добавите их в $ IFS.)
read -r var << eof
$var
eof