Uzak ssh komutlarına yapılan argümanlardan iki kez kaçmak gerektiğine dair soru ve cevapları gördüm. Sorum şu: İkinci ayrıştırma nerede ve ne zaman yapılıyor?
Aşağıdakileri çalıştırırsam:
$ ssh otherhost pstree -a -p
Çıktıda aşağıdakileri görüyorum:
|-sshd,3736
| `-sshd,1102
| `-sshd,1109
| `-pstree,1112 -a -p
Remote command ( pstree
) için üst işlem sshd
, komut satırı bağımsız değişkenlerini uzak komutla ayrıştıracak herhangi bir kabuk görünmüyor, bu nedenle çift tırnak veya kaçış gerekli gibi görünmüyor ( ama kesinlikle öyle). Bunun yerine önce orada ssh ve bir oturum açma kabuğu almak ve daha sonra çalıştırmak pstree -a -p
çıktı aşağıdaki görüyorum:
├─sshd,3736
│ └─sshd,3733
│ └─sshd,3735
│ └─bash,3737
│ └─pstree,4130 -a -p
Yani açıkça bash
bu durumda komut satırı ayrıştırma yapacak bir kabuk var. Ama doğrudan uzaktan komut kullandığımda, bir kabuk görünmüyor, neden çift tırnak gerekli?