• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Shell Script in Cocoa und Ergebins abfangen

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Nein.

| ist ein sog. Pipe Operator. Und es ist insbesondere ein Operator der Shell, also, Dein Shell Programm (bash, sh, zsh) ist dafür zuständig, das auszuführen.

Du musst zuerst einen NSTask für "echo 'Hallo'" machen, und dann einen NSTask mit "sed irgendwas" und dem Ergebnis des ersten Tasks. (In diesem Fall kann man beide Befehle ja auch simpelst mit Cocoa erledigen, ich vermute mal, Du muss etwas komplexeres machen)

Für Anfänger: Du machst es hintereinander, merkst Dir das Ergebnis des Task 1, und steckst das in Task 2.

Für Fortgeschrittene: Direkt die Ausgabe von Task 1 in Task 2 umleiten.

Alex
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Kannst Du mit meiner Antwort trotzdem etwas anfangen?

Du könntest natürlich, das fällt mir gerade ein, einen Task mit dem programm "/bin/sh" aufmachen, und dann die Argumente

"-c", "echo 'Hallo' | sed \"s/H$//\""

übergeben.

Alex
 

jack.jack

Klarapfel
Registriert
20.03.09
Beiträge
280
Gibt es eigentlich schon eine in Cocoa programmierte Funktion, die das gleiche wie /usr/bin/grep macht?
 

jack.jack

Klarapfel
Registriert
20.03.09
Beiträge
280
Es geht nicht. Ich habe es jetzt folgendes versucht

NSString *grepString = [NSString alloc];
grepString = [@"echo '" stringByAppendingString:theReadString];
NSString *grepString2= [NSString alloc];
grepString2 = [grepString stringByAppendingString:mad:"' | grep '\"t\":'"];

Und dann grepString2 als Argument für /bin/sh gegeben. Doch der Task gibt nichts zurück. Woran könnte das liegen?
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Ich glaube, es gibt Leute, die ein Cocoa RegEx Framework geschrieben haben.

Selbst verwende ich, Old School!, regex (3)

Alex
 

jack.jack

Klarapfel
Registriert
20.03.09
Beiträge
280
Für Fortgeschrittene: Meinst du mit [task setStandardInput: pipe] also muss ich dort eine Pipe einsetzen?