Основной недостаток использования здесь документа является то, что стандартный ввод скрипта будет здесь документ. Поэтому, если у вас есть скрипт, который хочет обработать свой стандартный ввод, python -c
- это ваш единственный вариант.
С другой стороны, использование python -c '...'
связывает одну кавычку для нужд оболочки, поэтому вы можете использовать только строки с двойными кавычками в вашем скрипте Python; используя двойные кавычки, чтобы защитить скрипт от оболочки, вводит дополнительные проблемы (строки в двойных кавычках подвергаются различным заменам, тогда как строки с одиночными кавычками являются буквальными в оболочке).
В качестве примечания обратите внимание на то, что вы, вероятно, захотите одинаковать кавычки с разделителем here-doc, в противном случае сценарий Python будет подчинен подобным подстановкам.
python - <<'____HERE'
print("""Look, we can have double quotes!""")
print('And single quotes! And `back ticks`!')
print("$(and what looks to the shell like process substitutions and $variables!)")
____HERE
В первом примере вам нужно избежать двойных кавычек, если вы хотите использовать строки с двойными двойными кавычками. – Evert
Ok Evert, это один аспект. Что другие предпочитают друг друга? – Kashif
Это действительно вопрос о документах, а не о Python – shadowtalker