В настоящее время я пытаюсь добавить сюда пустую строку, пример команды, которая у меня есть до сих пор

echo -e "my kernel version is $(uname -a) \nand the current date is $(date)"

Как мне изменить все это, поэтому вывод этого

my kernel version is Linux centos7 3.10.0-1127.18.2.el7.x86_64 #1 SMP Sun Jul 26 15:27:06 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
*** empty line***   
and the current date is Fri Apr 23 09:18:29 EEST 2021
-4
αғsнιη 23 Апр 2021 в 16:25
4
echo -e "... \n\n..."; см. также Почему printf лучше, чем echo?
 – 
αғsнιη
23 Апр 2021 в 16:24
1
«Пустая строка» — это не что иное, как строка, которая сразу же заканчивается другой «\n»; То же самое, что нажатие [RETURN]/[ENTER] дважды в текстовом редакторе создает пустую строку. Таким образом, '\n\n' создает в этой точке пустую строку.
 – 
C. M.
23 Апр 2021 в 16:38

2 ответа

Это использует здесь-документ для вывода многострочного сообщения (пустая строка создается путем включения пустой строки в здесь-документ):

cat <<END
my kernel version is $(uname -a)

and the current date is $(date)
END

Это использует printf для вывода сообщения (пустая строка создается путем вывода двух последовательных новых строк):

printf 'my kernel version is %s\n\nand the current date is %s\n' "$(uname -a)" "$(date)"

В моей системе оба они производят текст

my kernel version is OpenBSD box.prefix.example.com 6.9 GENERIC.MP#473 amd64

and the current date is Fri Apr 23 17:03:24 CEST 2021

См. также: Почему printf лучше, чем echo?

0
Kusalananda 23 Апр 2021 в 18:18

Я согласен с тем, что printf более универсален, чем echo, но быстрая модификация:

ОТ:

echo -e "my kernel version is $(uname -a) \nand the current date is $(date)"

TO:

echo -e "my kernel version is $(uname -a) \n\nand the current date is $(date)"

Не стесняйтесь добавлять столько переводов строк \n, сколько хотите, чтобы получить больше пробелов.

0
Seamus 24 Апр 2021 в 10:38