Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 21. Nov 2018 8:32

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Sonderzeichen bei ssh-Befehlsaufruf
BeitragVerfasst: 11. Feb 2008 15:44 
Offline

Registriert: 13. Dez 2005 9:02
Beiträge: 1
ich versuche über ssh auf einem entfernten system einen befehl auszuführen. Leider ist in dem befehl ein "$" einhalten, den ich nicht wegmaskiert bekomme.
Code:
# ssh user@remote befehl_mit_argument_mit_$_drinne

hat jemand eine idee, bitte?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11. Feb 2008 15:50 
Offline
prolinux-forum-admin

Registriert: 14. Feb 2003 13:19
Beiträge: 1294
Das $ interpretiert bash so, daß eine Variable folgt. Um das zu vermeiden, setzte den Befehl in 2 Hochkommata:
Code:
ssh user@remote 'befehl_mit_argument_mit_$_drinne'


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11. Feb 2008 16:21 
das hatte ich schon probiert, aber es scheint, dass ssh das $-Zeichen auch noch mal interpretiert. es geht auch nicht mit \$ oder mit Gänsefüßen.

gibt es noch eine andere möglichkeit?

ps. irgendwie kann ich mich nach einer änderung meiner mail-adresse im profil nciht mehr anmelden, da angeblich mein benutzername nicht stimmt. komisch!


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11. Feb 2008 20:33 
Offline
prolinux-forum-admin

Registriert: 14. Feb 2003 13:19
Beiträge: 1294
Also bei mir geht's:

Zum Test habe ich auf dem Remote-Rechner eine Datei erstellt, /tmp/test$x, der Inhalt ist "OK" als Text.

Lokal habe ich folgendes ausgeführt:
Code:
ssh root@192.168.0.29 'cat /tmp/test$x'
Als Ausgabe bekomme ich "OK", also den Inhalt der Datei auf dem Remote-Rechner. Lasse ich die Hochkommata weg, bekomme ich eine entsprechende Fehlermeldung, daß die Datei /tmp/test nicht gefunden wurde.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12. Feb 2008 10:10 
hm. bei mir nicht. weder unter ubuntu 7.04, ssh-version: 4.3p2-8ubuntu1
noch unter centos 5.1, ssh version: openssh-4.3p2-24.el5

bei beiden bekomme ich mit
Code:
ssh localhost 'ls -l /tmp/test$x'
nur ein
Code:
ls: /tmp/test: Datei oder Verzeichnis nicht gefunden
muss ich ev. beim sshd was umstellen?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12. Feb 2008 11:51 
Offline
Pro-Linux
Benutzeravatar

Registriert: 15. Aug 1999 16:59
Beiträge: 3237
Wohnort: Bruchsal
Hi!

Richtig erkannt, dass das $ von zwei Shells interpretiert wird. Die Lösung ist, vor das $ noch ein \ zu setzen, dann sieht die zweite Shell \$, was sie als $ interpretiert:
Code:
ssh localhost 'ls -l /tmp/test\$x'
Grüße,
hjb

_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 12. Feb 2008 14:03 
klappt. vielen dank. hatte ja ne menge probiert, aber diesen fall nicht.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de