Я бачив запитання та відповіді про те, що потрібно подвоїти аргументи для віддалених команд ssh. Моє запитання: саме де і коли відбувається другий аналіз?
Якщо я запускаю наступне:
$ ssh otherhost pstree -a -p
У висновку я бачу таке:
|-sshd,3736
| `-sshd,1102
| `-sshd,1109
| `-pstree,1112 -a -p
Батьківський процес для віддаленої команди ( pstree
) полягає в тому sshd
, що там, здається, немає жодної оболонки, яка б розбирала аргументи командного рядка на віддалену команду, тому, здається, не потрібне подвійне цитування чи скасування ( але це точно є). Якщо замість цього я сш там спочатку і отримую оболонку входу, а потім запускаю, pstree -a -p
у виході я бачу наступне:
├─sshd,3736
│ └─sshd,3733
│ └─sshd,3735
│ └─bash,3737
│ └─pstree,4130 -a -p
Так чітко є bash
оболонка, яка б виконувала розбір командного рядка в цьому випадку. Але у випадку, коли я використовую віддалену команду безпосередньо, не здається оболонки, тож чому потрібно подвійне цитування?