Почему echo -e «\ n» дает мне две пустые строки вместо одной?

Вам придется обновить таблицу маршрутизации на 10.0.1. маршрутизатор сети, чтобы он направлял пакеты на 192.168.1.1 через маршрутизатор 10.0.3.x.

Также необходимо создать обратные маршруты с 192.168.1.1 на 10.0.1. сеть, если маршрутизатор по умолчанию для этой сети уже знает правильный маршрут.

-2
28.02.2019, 08:34
1 ответ

echoвыводит строку, которую вы используете в качестве аргумента, а затем добавляет символ новой строки в конце выводимой строки, чтобы завершить строку.

С

echo "string"

вы получите stringи новую строку в конце.

Следовательно, с

echo -e "\n"

вы получите свою новую строку и новую строку в конце (т.е. две пустые строки ).

Если вам не нужен дополнительный перевод строки (, т. е. чтобы вывести непрерывающуюся строку ), используйте echoс опцией -nили, в этом случае, когда вы просто хотите вставить пустую строку, просто используйте echo ""или echoвообще без аргументов.

Из help echoвbash:

Options:
  -n        do not append a newline
  -e        enable interpretation of the following backslash escapes

Если вам нужно что-то переносимое на другие оболочки помимо bash, используйте вместо этого printf:

printf '\n' >>file.txt
printf 'bbbb\n' >>file.txt

Или,другой способ выполнения этих двух операторов с одним перенаправлением:

{
    printf '\n'
    printf 'bbbb\n'
} >>file.txt

Или просто

printf '\nbbbb\n' >>file.txt

Связанные:

4
28.01.2020, 05:15

Теги

Похожие вопросы