[gelöst] find mit -exec im Skript -> fehlendes Argument

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Jenaark
Beiträge: 6
Registriert: 08.02.2014 12:18:27

[gelöst] find mit -exec im Skript -> fehlendes Argument

Beitrag von Jenaark » 08.02.2014 14:26:20

Hallo,
bin neu in der Linuxgemeinde und versuche mich gerade an einem Skript zum Rechte verteilen.
Soweit funktioniert das auch aber wenn ich den Befehl nutze

find /mein/Verzeichnis -type d -exec chmod 0755 {} \;
bekomme ich:
find: Fehlendes Argument für "-exec"

Bein normaler Shell-eingabe klappt das so.
Ich könnte mir vorstellen,daß die Klammern nicht zu find interpretiert werden, allerdings weiss ich auch
nicht wie ich das lösen könnte.

Bei der Suche im Forum und der Wiki habe ich nichts passendes gefunden (evtl. nicht die passende Suchvariablen).

Ich würde mich freuen wenn mir jemand weiterhelfen könnte.
Zuletzt geändert von Jenaark am 09.02.2014 08:01:35, insgesamt 1-mal geändert.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von 4A4B » 08.02.2014 15:09:43

Hast du die Befehlszeile im Script genauso stehen? So eine Fehlermeldung kann kommen, wenn vor dem "\;" das Leerzeichen fehlt

wanne
Moderator
Beiträge: 7548
Registriert: 24.05.2010 12:39:42

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von wanne » 08.02.2014 15:13:14

sicher, dass du nicht find /mein/Verzeichnis -type d -exec chmod 0755 {} ; in das script geschrieben hast?
rot: Moderator wanne spricht, default: User wanne spricht.

Jenaark
Beiträge: 6
Registriert: 08.02.2014 12:18:27

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von Jenaark » 08.02.2014 15:22:37

ich habe definitiv den \ drin und ein leerzeichen davor - (2x neu eingegeben) - das verwundert mich daran ja so

wanne
Moderator
Beiträge: 7548
Registriert: 24.05.2010 12:39:42

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von wanne » 08.02.2014 15:24:29

probiermal anführungszeichen...
Welche shell benutzt du?
rot: Moderator wanne spricht, default: User wanne spricht.

Jenaark
Beiträge: 6
Registriert: 08.02.2014 12:18:27

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von Jenaark » 08.02.2014 15:25:57

benutze bash-shell -
Anführungszeichen nur um die klammern?

wanne
Moderator
Beiträge: 7548
Registriert: 24.05.2010 12:39:42

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von wanne » 08.02.2014 15:52:35

So.

Code: Alles auswählen

find . -type d -exec chmod 0755 {} ";"
Aber ich habe gerade mal dein befehl per copy und paste eingefügt und hier tut's
rot: Moderator wanne spricht, default: User wanne spricht.

Jenaark
Beiträge: 6
Registriert: 08.02.2014 12:18:27

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von Jenaark » 08.02.2014 16:41:02

also in meinem Skript bekomme ich nur die oben angegebene Fehlermeldung.
habe nochmal die zeile gelöscht und neu eingegeben -> keine Besserung (auch nicht mit Anführungszeichen)
Aber dennoch Danke für Eure Mühen

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von 4A4B » 08.02.2014 17:17:35

Jenaark hat geschrieben:benutze bash-shell
Steht diese in der Shebang-Zeile des Scripts?

Code: Alles auswählen

#!/bin/bash
Und wie rufst du das Script auf?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von Cae » 08.02.2014 18:19:50

Steckt das vielleicht innerhalb eines eval-Konstruktes? Dann stript die Shell im ersten Durchgang das \ und interpretiert im naechsten Durchgang das ;. find bekommt das ; dann gar nicht zu sehen und wuerde sich wie oben verhalten. Evtl werden auch die geschweiften Klammern {} zu irgendwas expandiert, aber das glaub' ich nicht so recht.

Verwende mal set -x ein paar Zeilen davor (oder bash -x deinskript) und poste den relevanten Debugging-Output hier.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Jenaark
Beiträge: 6
Registriert: 08.02.2014 12:18:27

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von Jenaark » 09.02.2014 07:54:17

Seltsam finde ich nur, daß es auch passierte als ich das Semikolon in Anführungszeichen gesetzt habe.

Nein, nführungszeichen gruppieren. Du weißt also nochmal explizit darauf hin, dass ; und der Kommentar als eines verstanden werden sollen.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: find mit -exec im Skript -> fehlendes Argument

Beitrag von 4A4B » 09.02.2014 07:59:38

Seltsam finde ich nur, daß es auch passierte als ich das Semikolon in Anführungszeichen gesetzt habe.
Die werden von der Shell entfernt. find sieht dann ;#allen als einen Parameter.

Jenaark
Beiträge: 6
Registriert: 08.02.2014 12:18:27

Re: [gelöst] find mit -exec im Skript -> fehlendes Argument

Beitrag von Jenaark » 09.02.2014 08:03:28

Ok. Danke das werde ich mir mal gut merken für weitere Tests

Antworten