В Python вы не можете ссылаться на класс в классе, хотя на таких языках, как Ruby, вы можете это сделать.
В Python вместо этого вы можете использовать декоратор класса, но он будет вызываться, как только класс будет инициализируется. Другим способом может быть использование метакласса, но это зависит от того, чего вы пытаетесь достичь.
В некоторых случаях вы должны отобразить длинный контент (например, код) с некоторой конкатенацией env var и хотите упростить его.
echo -e
, printf
могут иметь некоторые ограничения
Вы можете использовать специальный символ в качестве заполнителя для переноса строки (например, ~
)
и попробовать это:
echo ${content} | tr '~' '\n' > $targetFile
необходимо вызвать другую программу (tr
), что должно быть хорошо для ИМО.
Иногда вы можете передать несколько строк, разделенных пробелом, и это будет интерпретировано как \n
.
Например, при использовании сценария оболочки для многострочных уведомлений:
#!/bin/bash
notify-send 'notification success' 'another line' 'time now '`date +"%s"`
Мне приходилось заключать текст в двойные кавычки при использовании в качестве псевдонима в профиле bash (MacOx, iTerm).
alias helloworld="echo -e \"hello \n world\""
POSIX 7 на эхо
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html
-e
не определено, а обратные слэши определяются реализацией:
Если первый операнд имеет значение -n или если какой-либо из операндов содержит символ < backslash>, результаты определяются реализацией.
, если у вас нет дополнительного расширения XSI.
Поэтому я рекомендую вам использовать вместо этого printf
, что хорошо указано: операнд формата
должен использоваться в качестве строки формата, описанной в нотации формата файла XBD [...]
\ n < newline> Переместить позицию печати в начало следующей линии.
Также имейте в виду, что Ubuntu 15.10 и большинство дистрибутивов реализуют echo
как:
help echo
which echo
, что может привести к некоторой путанице.
Вы уверены, что находитесь в Bash? У меня работает все три способа:
echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello\n'world
Вы также можете использовать эхо с фигурными скобками,
$ (echo hello; echo world)
hello
world
Это работает для меня в CentOS:
echo -e ""hello\nworld""
Try
echo -e "hello\nworld"
hello
world
работал для меня в нано-редакторе.
Вы также можете сделать:
echo "hello
world"
Это работает как внутри скрипта, так и из командной строки.
В командной строке нажмите Shift kbd> + Enter kbd>, чтобы сделать разрывы строк внутри строки.
Это работает для меня на моем MacOS и Ubuntu 18.04