Чтобы прочитать 1 символ в режиме POSIX, вы можете сделать
y=$(dd bs=1 count=1 2>/dev/null)
(y=$(head -c 1)
тоже не POSIX.) Подробнее о https://unix.stackexchange.com/questions/464930/can-i-read-a-single-character-from-stdin-in-posix-shell
Вы можете комбинировать
printf ' Port: '
printf %s "$request" | xmllint --xpath 'string(/Server/Port)' -
с &&
или ;
или новой строкой, как у вас.
Как chai-t-rex указал,
printf ' Port: %s' "$(printf %s "$request" | xmllint --xpath 'string(/Server/Port)' -)"
также возможно, но это не дает никакой выгоды.Все, что он делает, это немного реорганизует ваш код, в то же время вводя умеренную пессимизацию производительности из-за запуска ненужного процесса подстановки команд.