Подоболочка делает не создавать отдельный процесс

Посмотрите на ssh-agent и sshpass .

Если они не решают вашу проблему, объясните, почему они не решают ее.

2
13.04.2017, 15:37
1 ответ

Замена команд происходит в "подпрограммной среде", не обязательно в полноценной подпрограмме; оболочка будет избегать создания бесполезного процесса, если эффект от наличия подпрограммной среды может быть достигнут без неё. Если вы хотите увидеть полноценную подпрограмму, дайте ей что-то, для чего нужна полноценная подпрограмма; сравните:

$ echo "$(ps fax)"
  PID TTY      STAT   TIME COMMAND
  ...
 1317 ?        Ss     0:00 /usr/sbin/sshd -D
 1751 ?        Ss     0:00  \_ sshd: alexp [priv]
 1788 ?        S      0:00      \_ sshd: alexp@pts/0
 1789 pts/0    Ss+    0:00          \_ -bash
 1822 pts/0    R+     0:00              \_ ps fax
  ...
$ echo "$(ps fax; echo)"
  PID TTY      STAT   TIME COMMAND
  ...
 1317 ?        Ss     0:00 /usr/sbin/sshd -D
 1751 ?        Ss     0:00  \_ sshd: alexp [priv]
 1788 ?        S      0:00      \_ sshd: alexp@pts/0
 1789 pts/0    Ss+    0:00          \_ -bash
 1823 pts/0    S+     0:00              \_ -bash
 1824 pts/0    R+     0:00                  \_ ps fax
  ...
3
27.01.2020, 22:10

Теги

Похожие вопросы