WinFuture-Forum.de: Frage zu Shellbefehl "echo" - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Linux
Seite 1 von 1

Frage zu Shellbefehl "echo"


#1 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

  geschrieben 02. März 2011 - 10:07

Grüß Gott die Herrn (und Damen)

ich habe eine Frage zu einem Shellbefehl

Ich möchte die folgenden Codezeilen an der Datei /var/tmp/rc.wlan anhängen
cd /var/tmp
wget http://www.busybox.net/downloads/binaries/1.16.1/busybox-mipsel
chmod +x ./busybox-mipsel
./busybox-mipsel arp -s 192.168.0.100 00:11:22:33:44:55


Jetzt habe ich folgendes im Inet gefunden
echo '(sleep 10; arp -s <IP> <MAC>) &' >> /var/tmp/rc.wlan


Frage 1:
Reicht es, dass ich alle Befehle hintereinander mit ; getrennt in die Echo anweisung schreibe?

Frage 2:
Für was ist das & am Ende des Echo Befehls?

Frage 3:
Für was sind die Klammern im Echobefehl?

Frage 4:
Gibt es eine elegantere Lösung als so einen "Einzeile" der übersichtlicher in der Schreibweise ist?

Danke für die Antworten.

Dieser Beitrag wurde von olm bearbeitet: 02. März 2011 - 10:07

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 02. März 2011 - 10:51

1. Du kannst Befehle mittels ; oder & trennen. ; führt den zweiten Befehl immer aus, bei && wird der zweite Befehl nur dann ausgeführt, wenn der erste keinen Fehler zurückliefert.

2. Dadurch wird der Befehl im Hintergrund gestartet.

3. Das ist u.a. für 2. wichtig. Alle Befehle in der Klammer werden im Hintergrund gestartet.

4. Sowas?
cat >> /var/tmp/rc.wlan << EOF
cd /var/tmp
wget http://www.busybox.net/downloads/binaries/1.16.1/busybox-mipsel
chmod +x ./busybox-mipsel
./busybox-mipsel arp -s 192.168.0.100 00:11:22:33:44:55
EOF

0

#3 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 02. März 2011 - 12:18

Danke erstmal.

1-3 habe ich jetzt verstanden

jetzt habe ich nochmal eine Frage wegen dem

cat >> /var/tmp/rc.wlan << EOF
cd /var/tmp
wget http://www.busybox.net/downloads/binaries/1.16.1/busybox-mipsel
chmod +x ./busybox-mipsel
./busybox-mipsel arp -s 192.168.0.100 00:11:22:33:44:55
EOF


Mit dem Befehl EOF (End of File) wird da die datei dann gespeichert?
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 02. März 2011 - 15:31

<< IRGENDWAS
...
...
IRGENDWAS

Das ist lediglich ein Platzhalter. Übersetzt heißt das etwa, "Nehme solange Eingaben entgegen, bis du den Platzhalter findest". In dem konkreten Fall, "Leite (>>) alles in die Datei /var/tmp/rc.wlan was zwischen den beiden EOFs steht".

Hintergrund ist, dass man mit Enter in der Regel direkt einen Befehl abschickt. Stattdessen wird hierbei solange gewartet bis der Platzhalter gefunden wurde.
0

#5 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 04. März 2011 - 15:12

Vielen Dank.


Jetzt habe ich aber doch noch eine Frage.



Einzeilig:
echo '(sleep 10; cd /var/tmp; wget http://www.busybox.net/downloads/binaries/1.16.1/busybox-mipsel; chmod +x ./busybox-mipsel; ./busybox-mipsel arp -s 192.168.5.101 00:11:32:07:B8:8F) &' >> /var/tmp/rc.wlan


Mehrzeilig:
echo '(
sleep 10; 
cd /var/tmp; 
wget http://www.busybox.net/downloads/binaries/1.16.1/busybox-mipsel; 
chmod +x ./busybox-mipsel; 
./busybox-mipsel arp -s 192.168.5.101 00:11:32:07:B8:8F
) &' >> /var/tmp/rc.wlan


Wenn ich diesen Befehl per Skript ausführen möchte, darf ich den Befehl als Mehrzeiler in meine Skriptdatei speichern oder muß es zwingend ein Einzeiler sein?
0

#6 Mitglied ist offline   Q-Fireball 

  • Gruppe: aktive Mitglieder
  • Beiträge: 943
  • Beigetreten: 22. Februar 04
  • Reputation: 1

geschrieben 05. März 2011 - 17:15

In den meisten Skript Sprachen wie auch Programmiersprachen sind Leerzeichen und Return's vollkommen irrelevant. Daher in Linux ist das auch so und du darfst es machen wie du Lust bist!
Auch sowas funktioniert
sleep
10
;
Ich versteh nur nicht wieso du was in eine Datei schreiben willst, per echo, wenn du die Datei eh direkt öffnen kannst?!
0

#7 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 07. März 2011 - 10:36

Ok danke dir.


Das soll ein Skript sein, dass ich manuell ausführe. Nach einem Neustart des Gerätes sind die Änderungen wieder verschwunden.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0