Verwendung eines einzelnen Systems () Aufruf zum Ausführen mehrerer Befehle in C

7

In einem Informationssicherheitslabor, an dem ich arbeite, wurde ich damit beauftragt, mehrere Befehle mit einem einzigen Aufruf von "system ()" auszuführen (in C geschrieben, unter Fedora). Was ist die Syntax, die es mir erlaubt, mehr als Befehl durch System () auszuführen? (Sie könnten beliebige Befehle über ein Programm ausführen, das auf einem Remotecomputer ausgeführt wird, wenn das Programm über den Aufruf von system () mit dem Betriebssystem interagiert.)

I.e .:

%Vor%     
Chance 29.10.2008, 02:21
quelle

3 Antworten

13

Das hängt von der Shell ab, die aufgerufen wird, um die Befehle auszuführen, aber im Allgemeinen verwenden die meisten Shells ; , um Befehle zu trennen, damit etwas wie dieses funktioniert:

%Vor%

[BEARBEITEN]

Wie in @dicroce erwähnt, können Sie && anstelle von ; verwenden, wodurch die Ausführung beim ersten Befehl gestoppt wird, der einen Wert ungleich null zurückgibt. Dies kann oder kann nicht gewünscht sein (und einige Befehle können bei Erfolg nicht null zurückgeben), aber wenn Sie versuchen, Befehle zu verarbeiten, die fehlschlagen können, sollten Sie wahrscheinlich nicht mehrere Befehle in einem system () -Aufruf zusammenführen, wie Sie nicht haben jede Art zu bestimmen, wo der Fehler aufgetreten ist. In diesem Fall ist es am besten, wenn Sie entweder jeweils einen Befehl ausführen oder ein Shell-Skript erstellen, das die entsprechende Fehlerbehandlung durchführt und stattdessen aufruft.

    
Robert Gamble 29.10.2008, 02:27
quelle
8

Verwenden & amp; & amp; zwischen deinen Befehlen. Dies hat den Vorteil, dass Befehle nur solange ausgeführt werden, wie sie erfolgreiche Fehlercodes zurückgeben. Beispiel:

"cd / proc & amp; & cat cpuinfo"

    
dicroce 29.10.2008 02:47
quelle
1

Eine Möglichkeit kommt mir sofort in den Sinn. Sie könnten alle Befehle in ein Skript schreiben und dann mit:

ausführen %Vor%

oder, jetzt wo ich bemerkt habe, dass Sie auf Fedora laufen:

%Vor%     
paxdiablo 29.10.2008 02:28
quelle

Tags und Links