Интересно. Похоже, это специфичное для Bash поведение.
Я пробовал 3 других POSIX-совместимых оболочки (zsh, dash, busybox), и во всех из них echo "$ (trap)"
дал тот же результат, что и (trap)
: подоболочка запускается, и подоболочка не показывает ловушку EXIT
.
(Обратите внимание, что trap -p
специфичен для Bash, и без дополнительных параметров он делает то же самое, что и trap
без параметров.)
Поведение Bash потенциально полезно : это означает, что вы можете написать a = "$ (trap)"
для захвата настроек прерывания родительской оболочки, которые, скорее всего, будут интересны.
Однако, если вы установите или очистите ловушку в подоболочке, то она будет перечислить ловушки подоболочки вместо родительской:
$ trap 'echo bye' EXIT
$ echo "$(trap TERM; trap)" # explicitly clear TERM, but leave EXIT alone
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
Таким образом, они также охватили редкий случай, когда вы интересуется ловушками подоболочки.
В общем, я заметил, что разработчики Bash, похоже, приложили дополнительные усилия, чтобы обработка подоболочки работала нормально. Кроме того, с помощью Bash намного проще управлять фоновыми подпроцессами, чем с помощью более минимальных оболочек POSIX.
Вы можете явно указать положение узла с помощью атрибута pos, например:
"foo" [height=0.52778, label="node foo label",
pos="19938,4672.2", width=1.2222];
Хотя ответы на GD.se не дают прямого ответа на мой вопрос. Тем не менее, это приятное чтение и правильный сайт, чтобы задать этот вопрос.
https://graphicdesign.stackexchange.com/questions/16629/drawing-block-diagram