| Autor |
Nachricht |
blurry333
Mitglied
Benutzerprofil
Anmeldungsdatum: 23.01.2010
Beiträge: 591
|
blurry333 Mitglied
01:20:49 16.01.2012 Titel: |
script schreiben |
Zitieren |
Hallo,
#!/bin/bash
ssh root@192.168.10.17
echo 'Hallo'
Das ist mein script. Ich verbinde mich mit ssh auf meinen Rooter. Was ich nicht versthe warum er das echo 'Hallo' nicht auf dem Rooter ausfuehrt sondern erst wenn ich die Verbindung mit exit beende. |
|
|
|
 |
volkard
Moderator
Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
|
volkard Moderator
01:35:59 16.01.2012 Titel: |
Re: script schreiben |
Zitieren |
|
 |
blurry333
Mitglied
Benutzerprofil
Anmeldungsdatum: 23.01.2010
Beiträge: 591
|
blurry333 Mitglied
02:22:00 16.01.2012 Titel: |
|
Zitieren |
Versteh ich jetzt nicht.
Ich weiss echt nicht wie ich auf dem router "Hallo" ausgeben kann nachdem ich die Verbindung mit ssh aufgebaut habe. Irgendwie schluckt der das nicht. |
|
|
|
 |
rüdiger
Moderator
Benutzerprofil
Anmeldungsdatum: 11.07.2001
Beiträge: 22820
|
rüdiger Moderator
02:25:45 16.01.2012 Titel: |
|
Zitieren |
Befehle die du auf dem Server ausführen willst, nimmt ssh als Parameter. Siehe Dokumentation von ssh. |
|
|
|
 |
blurry333
Mitglied
Benutzerprofil
Anmeldungsdatum: 23.01.2010
Beiträge: 591
|
blurry333 Mitglied
02:29:59 16.01.2012 Titel: |
|
Zitieren |
Und weiss jemand warum das if vor der eckigen Klammer und nach der eckigen Klammer ein Leerzeichen braucht ?
|
|
|
|
 |
volkard
Moderator
Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
|
volkard Moderator
02:31:05 16.01.2012 Titel: |
|
Zitieren |
| blurry333 schrieb: | Versteh ich jetzt nicht.
Ich weiss echt nicht wie ich auf dem router "Hallo" ausgeben kann nachdem ich die Verbindung mit ssh aufgebaut habe. Irgendwie schluckt der das nicht. |
Die Ausgabe wird zurückgeleitet an Dich.
Deswegen ja auch ls als Beispiel. Das sollte anzeigen, welche Dateien dort liegen. |
_________________ http://www.venganza.info/
plonk fürs Forum v1.02
|
|
 |
foobarr
Unregistrierter
|
foobarr Unregistrierter
09:48:02 16.01.2012 Titel: |
|
Zitieren |
| blurry333 schrieb: | Und weiss jemand warum das if vor der eckigen Klammer und nach der eckigen Klammer ein Leerzeichen braucht ?
| Ja, ich weiss es. Ist das wichtig? |
|
|
|
 |
Christoph
Moderator
Benutzerprofil
Anmeldungsdatum: 30.04.2001
Beiträge: 5711
|
Christoph Moderator
10:03:42 16.01.2012 Titel: |
|
Zitieren |
| blurry333 schrieb: | Und weiss jemand warum das if vor der eckigen Klammer und nach der eckigen Klammer ein Leerzeichen braucht ?
| Nimm lieber [[ ]] statt [ ]. Die Syntax ist im Prinzip dieselbe, aber man macht weniger Fehler. Es heißt übrigens = und nicht ==, das ist nicht C++.
[ $1 = $2 ] gibt nämlich eine Fehlermeldung, wenn $1 leer ist.
[[ $1 = $2 ]] dagegen funktioniert immer wie erwartet. |
_________________ Wenn Word für Längeres geeignet wäre, würde es nicht Word, sondern Sentence, Page oder Article heißen.
|
|
 |
seldon
Unregistrierter
|
seldon Unregistrierter
15:25:18 16.01.2012 Titel: |
|
Zitieren |
[ ist ein Programm, üblicherweise /usr/bin/[ und ein Alias für /usr/bin/test.
| Code: | if [ foo = bar ]; then
fi
| |
| Code: | if [ foo = bar ]; then
fi
| |
| Code: | if [ foo = bar ]; then
fi
| |
ist das selbe wie
| Code: | if test foo = bar; then
fi
| |
| Code: | if test foo = bar; then
fi
| |
| Code: | if test foo = bar; then
fi
| |
if in der POSIX-Shell prüft den Rückgabewert dessen, was ihm als Parameter übergeben wurde (0 bedeutet wahr, alles andere falsch) und handelt dementsprechend. Man kann da locker auch andere Programme einsetzen, wenn man ihr Rückgabewertverhalten kennt; beispielsweise
| Code: | if grep foo bar.txt > /dev/null; then
echo bar.txt enthält den String \"foo\".
fi
| |
| Code: | if grep foo bar.txt > /dev/null; then
echo bar.txt enthält den String \"foo\".
fi
| |
| Code: | if grep foo bar.txt > /dev/null; then
echo bar.txt enthält den String \"foo\".
fi
| |
|
|
|
|
 |
foobarr
Unregistrierter
|
foobarr Unregistrierter
16:50:16 16.01.2012 Titel: |
|
Zitieren |
| seldon schrieb: |
| Code: | if grep foo bar.txt > /dev/null; then
echo bar.txt enthält den String \"foo\".
fi
| |
| Code: | if grep foo bar.txt > /dev/null; then
echo bar.txt enthält den String \"foo\".
fi
| |
| Code: | if grep foo bar.txt > /dev/null; then
echo bar.txt enthält den String \"foo\".
fi
| |
| Oder aber:
| Code: | if grep -q foo bar.txt ; then
echo bar.txt enthält den String \"foo\".
fi
| |
| Code: | if grep -q foo bar.txt ; then
echo bar.txt enthält den String \"foo\".
fi
| |
| Code: | if grep -q foo bar.txt ; then
echo bar.txt enthält den String \"foo\".
fi
| |
Warum sollte grep Ausgaben erzeugen, die nach /dev/null wandern. -q sagt grep, er soll erst gar nichts ausgeben. |
|
|
|
 |
seldon
Unregistrierter
|
seldon Unregistrierter
17:11:42 16.01.2012 Titel: |
|
Zitieren |
Weil das ursprüngliche grep aus UNIX V7 die -q-Option nicht beherrscht.
Aber Spaß beiseite, wenn man sich auf POSIX stützen kann, was meistens der Fall sein dürfte, ist -q natürlich hübscher. Ich hab das bloß nicht auswendig gewusst. |
|
|
|
 |