Portál AbcLinuxu, 23. listopadu 2025 09:11
./skript.sh "promenna1" "promenna2 je delsi a obsahuje mezery" "promenna3"ssh -c "command", ale uvozovky mi rozbijeji ty zadavane promenne.
Poradte jak to resit, dekuju.
ssh -c? To nastavuje použitou šifru.
SSH spustí cokoliv, co je uvedeno za jeho parametry:
ssh kdo@kde /muj/skript.sh "promenna1" "promenna2 je delsi a obsahuje mezery" "promenna3"
Je třeba neplést si sh -c <příkaz> a ssh -c <šifra>. Option -c má u ssh úplně jiný význam.
Při spouštění příkazu na druhé straně pomocí sh -c místo použití argumentů ssh je potřeba počítat s tím, že parametr optionu -c musí zůstat v celku jako jeden token a že projde dvojí expanzí.
ssh můj.server sh -c \''můj_skript.sh "a b" "c d" "e $HOSTNAME f"'\'
Jednodušší ale bude:
ssh můj.server můj_skript.sh \'"a b"\' \'"c d"\' \'"e $HOSTNAME f"\'
Proměnná $HOSTNAME se bude expandovat v prvním případě na straně serveru, ve druhém případě na straně klienta … jen tak pro zajímavost. I na to je třeba dát pozor.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.