Portál AbcLinuxu, 7. května 2025 07:34
bash -c "echo 1 2 3 ; echo 11 22 33"
1 2 3
11 22 33
ssh nekam bash -c "echo 1 2 3 ; echo 11 22 33"
11 22 33
Řešení dotazu:
1 2 3 ; echo 11 22 33
bash -c "echo 1 2 3 ; echo 11 22 33"1. Tvoj shell, ktorý obsluhuje terminál, rozparsuje riadok na
bash -c echo 1 2 3 ; echo 11 22 332. Tvoj shell spustí program "bash" a dá mu parametre "-c" a "echo 1 2 3 ; echo 11 22 33". 3. bash rozparsuje a vykoná to, čo je v stringu "echo 1 2 3 ; echo 11 22 33" a skončí. Čo sa deje v prípade príkazu
ssh nekam bash -c "echo 1 2 3 ; echo 11 22 33"1. Tvoj shell rozparsuje riadok na
ssh nekam bash -c echo 1 2 3 ; echo 11 22 332. Tvoj shell spustí ssh s vyššie uvedenými parametrami. 3. ssh nadviaže spojenie "nekam", tam spustí shell toho usera, a odovzdá mu string
bash -c echo 1 2 3 ; echo 11 22 334. Ten vzdialený shell riadok rozparsuje na
bash -c echo 1 2 3 ; echo 11 22 335. Vzdialený shell spustí bash, s parametrami "-c" a "echo" - výsledkom je prázdny riadok na stdout. Parametre "1" "2" a "3" sú parametre vzdialeného shellu, nie spúšťaného bashu. 6. Vzdialený shell (nie ten bash, spomínaný v predchádzajúcom bode) potom vykoná druhý príkaz: echo 11 22 33 - výsledkom je výstup 11 22 33 na stdout. 7. ssh prenesie obsah stdout zo vzdialeného stroja na Tvoj terminál.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.