Лучший подход к вашей проблеме - написать файл .py
и запустить его.
Однако я могу представить, что для написания сценариев вам может понадобиться что-то подобное, если вы не можете написать файл. В этом случае вы можете разделить свои команды на ;
, но вы будете ограничены программами без блоков, например:
python3 -c "import math; a = 10; print('Hello {} {}'.format(a, math.sin(a)))"
# prints:
# Hello 10 -0.5440211108893698
, но:
python3 -c "import math; a = 10; for i in range(a): print('Hello {} {}'.format(i, math.sin(i)))"
SyntaxError: неверный синтаксис
blockquote>, но опять же:
python3 -c "import math; a = 10; [print('Hello {} {}'.format(i, math.sin(i))) for i in range(a)]" # prints: # Hello 0 0.0 # Hello 1 0.8414709848078965 # Hello 2 0.9092974268256817 # Hello 3 0.1411200080598672 # Hello 4 -0.7568024953079282 # Hello 5 -0.9589242746631385 # Hello 6 -0.27941549819892586 # Hello 7 0.6569865987187891 # Hello 8 0.9893582466233818 # Hello 9 0.4121184852417566
последний, конечно, плохая практика и все (побочный эффект в понимании и т. Д.), Но вид работ.
Это будет зависеть от того, файл с отображением памяти открывается с частными изменениями (MAP_PRIVATE) или нет (MAP_SHARED). Если частный, то нет; изменения не будут записаны обратно на диск. При совместном использовании пул буферов ядра содержит измененные буферы, и они будут записаны на диск в свое время - независимо от причины смерти.