Ho visto le domande e le risposte sulla necessità di sfuggire al doppio degli argomenti ai comandi remoti di ssh. La mia domanda è: esattamente dove e quando viene eseguita la seconda analisi?
Se eseguo quanto segue:
$ ssh otherhost pstree -a -p
Vedo quanto segue nell'output:
|-sshd,3736
| `-sshd,1102
| `-sshd,1109
| `-pstree,1112 -a -p
Il processo parent per il comando remoto ( pstree) è sshdche non sembra esserci alcuna shell che analizzi gli argomenti della riga di comando con il comando remoto, quindi non sembra che siano necessarie doppie virgolette o escape ( ma sicuramente lo è). Se invece ho prima ssh lì e ottengo una shell di login, quindi eseguo pstree -a -pvedo quanto segue nell'output:
├─sshd,3736
│ └─sshd,3733
│ └─sshd,3735
│ └─bash,3737
│ └─pstree,4130 -a -p
Quindi chiaramente c'è una bashshell lì che farebbe l'analisi della riga di comando in quel caso. Ma nel caso in cui utilizzo direttamente un comando remoto, non sembra esserci una shell, quindi perché è necessaria la doppia virgoletta?