Para hasta CentOS 7 Puede probar
cat /proc/meminfo
para ver el uso real de la memoria por parte de los procesos.
Если ввод\n
(как двух символов \
иn
)приемлем, вы можете использовать printf
для интерпретации:
#!/bin/bash
IFS= read -rep "Multiline input=" variable;
printf -v variable "%b" "$variable"
printf "'variable=%s'\n" "${variable}";
Например:
~./foo.sh
Multiline input=foo\nbar
'variable=foo
bar'
Из руководства bash:
The backslash character ‘\’ may be used to remove any special meaning for the next character read and for line continuation.
Бит «продолжение строки», по-видимому, подразумевает, что вы не можете избежать новой строки, если не используете другой символ в качестве разделителя строки.
У @muru есть правильный ответ на bash.
В качестве альтернативы :пусть printf
обрабатывает последовательности обратной косой черты, но вы должны быть осторожны с %
символами во входных данных
read -r input
printf "${input//%/%%}\n"
Вместо того, чтобы использовать какую-то особенность bash
или printf
, я использовал sed
для замены экранированного символа новой строки \\n
фактической новой строкой:
#!/bin/bash
read -e -p -r "Multiline input=" variable;
printf "'variable=%s'" "${variable}";
variable=$(printf "${variable}" | sed 's/\\n/\n/g');
Ссылки: