Я хочу отобразить новую строку в файле между переменными в сценарии оболочки. Вот мой код:
var1 = "Hello" var2 = "Мир!" logwrite = "$ var1 [Здесь я хочу вставить новую строку] $ var2 echo "$ logwrite" >> /Users/username/Desktop/user.txt
Прямо сейчас, когда я запускаю свой скрипт, файл user.txt показывает это:
Привет, мир!
Я хочу это показать:
Здравствуйте Мир!
Как мне это сделать??
РЕДАКТИРОВАТЬ: Вот мой сценарий оболочки:
echo -n "Как тебя зовут?" читать первым echo -n "Какая у тебя фамилия?" читать в последний раз echo -n "Каково ваше второе имя?" читать середину echo -n "Какой у тебя день рождения?" читать день рождения echo -e "Имя: $ first / nLast Имя: $ last / nMiddle Имя: $ middle / nBirthday: $ birthday" >> /Users/matthewdavies/Desktop/user.txt qlmanage -p "~ / Desktop / user.txt"
shell
shell-script
echo
daviesgeek
источник
источник
printf "%s\n" $var1 $var2 >> file
?Ответы:
Объяснение:
\n
Последовательность выхода указывает на новую строку. Передача-e
аргумента в echo позволяет интерпретировать escape-последовательности.Это может даже быть упрощено далее:
или даже:
источник
\n
вместо того,/n
чтобы делать трюк :)-e
флаг не требовался .или на самом деле вам не нужны переменные:
Существует проблема с john t answer: если у какого-либо из vars есть строка \ n (или какая-либо другая последовательность, например, \ t), они будут переведены. что-то похожее на его ответ можно получить с помощью printf:
тоже хм. я вижу, вы составляете ответ в переменную $ logwrite. если это единственное использование этой переменной, это кажется бессмысленным.
Я думаю, что здесь документ может быть более читабельным, особенно если у вас есть много строк, чтобы добавить в журнал:
(это слово EOF - это разделитель, который вы можете выбрать. Это может быть любое слово).
Имейте в виду, что heredoc будет расширять переменные $, как двойные кавычки. если вы не хотите этого, вы цитируете heredoc, например << "EOF"
источник
\n
, поэтому я и дал ответ. Методология «что если» перенесет каждый вопрос на этом сайте в бесконечную дискуссию. Когда он выходит на эту дорогу, он может задать еще один вопрос :)printf
. Это POSIX: stackoverflow.com/a/34947759/895245