Новая строка при редактировании текстовых файлов в терминале Ubuntu?

Я знаю, что для обозначения новой строки я бы сделал echo -e "line 1 \nline 2" > text.txt. Я нахожу, что повторное использование \ n может быть раздражающим, и я хотел бы знать, есть ли способ фактически перейти вниз по строке в терминале без выполнения команд. Например, если бы я редактировал python в терминале, я мог бы написать

def main():
    print "hello world"

И нажатие "enter" для перехода на новую строку не выполнило бы def main(): оно просто перешло на новую строку. Есть ли что-нибудь похожее на это в обычном терминале?

2 ответа

В дополнение к непревзойденной кавычке вы можете использовать heredocs:

$ python <<EOF
> def main():
>       print "Hello"
> 
> main()
> EOF
Hello
$

Обратите внимание, что EOF это просто общий и удобный разграничитель, подойдет любой токен.

Если вы просто хотите отобразить текст, как в вашем примере, вы можете просто использовать клавишу Enter вместо \n как это:

echo "line 1
line 2" > text.txt

Чтобы это работало, вы должны окружить свой текст "" как показано или с '',

Если вы хотите ввести последовательность команд без их выполнения до тех пор, пока не закончите, вы можете начать последовательность с { и закончить его }, как это:

{
echo line 1
echo line 2
date
}

Вы также можете перенаправить вывод всей последовательности, следуя закрытию } с вашим перенаправлением, как

{
echo line 1
echo line 2
date
} > text.txt
Другие вопросы по тегам