Portál AbcLinuxu, 3. listopadu 2025 05:08
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 33
2. 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 33
2. 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 33
4. Ten vzdialený shell riadok rozparsuje na
bash
-c
echo
1
2
3
;
echo
11
22
33
5. 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.