Autor Thema: $(.......)  (Gelesen 1251 mal)

Offline unixanfängerin

  • Unix Rookie
  • *
  • Beiträge: 2
    • Profil anzeigen
$(.......)
« am: 04. März 2016, 13:26:47 »
Hallo,
leider habe ich keinen besseren Thementitel gefunden. Kann mir einer diesen Befehl erklären?

cp $(find /usr/bin/ -name [lz]* -perm -111) Uebungen/Uebung2/Programme/

Was ich nicht verstehe:
1. Was bedeutet dieses $ Zeichen mit den runden Klammern ( )  ?
2. Wann benötigt man diese Schreibweise $(...)

unixforum.net - Der Treffpunkt für UNIX Fans

$(.......)
« am: 04. März 2016, 13:26:47 »

Offline Kill-15

  • Unix Rookie
  • *
  • Beiträge: 5
    • Profil anzeigen
Re: $(.......)
« Antwort #1 am: 05. März 2016, 15:47:20 »
Hi,

also ich versuche es mal verständlich zu erklären.
Das $ Zeichen ist eine Variable.
Mit Hilfe der () Klammern wird das Ergebnis des find Kommandos an die Variable $ übergeben.
Das cp kopiert den Inhalt der Variable $ nach Uebungen/Uebung2/Programme/

HTH
Gruß
Thomas

Offline unixanfängerin

  • Unix Rookie
  • *
  • Beiträge: 2
    • Profil anzeigen
Re: $(.......)
« Antwort #2 am: 07. März 2016, 22:08:37 »
Und warum funktioniert dieser Befehl nicht?

cp $(usr/bin/[lz]*) Uebungen/Uebung2/Programme

Offline Kill-15

  • Unix Rookie
  • *
  • Beiträge: 5
    • Profil anzeigen
Re: $(.......)
« Antwort #3 am: 08. März 2016, 07:29:41 »
Wenn Du den Befehl folgendermaßen aufrufst, sollte es funktionieren

cp /usr/bin/[lz] Uebungen/Uebung2/Programme

Mit diesem Befehl werden alle Dateien in denen lz vorkommt aus dem Verzeichnis /usr/bin nach Uebungen/...  kopiert.

cp $(usr/bin/[lz]*) Uebungen/..... funktioniert deshalb nicht, weil dass was in den Klammern steht in der Variable $ gespeichert bzw dieser zugewiesen wird. Es wird versucht usr/bin/[lz]* aufzurufen. Das gibt es so aber nicht.

In dem ersten Beispiel cp $(find /usr/bin/ -name [lz]* -perm -111) Uebungen/Uebung2/Programme/
wird mit Hilfe des find Kommandos im Verzeichnis nach Dateien gesucht, die lz enthalten. Diese werden dann an die Variable übergeben und danach via cp kopiert.

Hier mal ein Link, der sich mit diesem Thema beschäftigt:

http://www.netzmafia.de/skripten/unix/unix8.html


Gruß
Thomas