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

def main():
    print "hello world"

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

2 ответа2

0

Если вы просто хотите отобразить текст, как в вашем примере, вы можете просто использовать клавишу 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
0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .