Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » system() mit bash?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.10.2006, 17:13 Uhr
flappinski



Hallo Leute,
ich wollte einen Systemcall aufrufen, wobei mir ein merkwürdiges Verhalten dieses Befehls auffiel. Irgendwann habe ich gescheckt, dass der Systemcall mit sh gestartet wird. Wie kann ich denn jetzt das System überreden, den Befehl mit der bash zu starten?
Danke im Vorraus...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.10.2006, 17:19 Uhr
Pler
Einer von Vielen
(Operator)


Normalerweise zeigt sh ja auf die Bash.

Ansonsten würde mir auf die Schnelle nur execv und Co einfallen...


Nachtrag:

bash:
# ls -la /bin/sh
lrwxrwxrwx  1 root root 4 Sep  5 11:31 /bin/sh -> bash

Dieser Post wurde am 09.10.2006 um 17:20 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.10.2006, 17:46 Uhr
flappinski



Du hast Recht, bei mir zeigt das auch auf die bash, aber dennoch werden die systemcalls als sh-Befehle interpretiert, jedenfalls scheint es mir so. Ich habe inzwischen jedoch herausgefunden, wie ich den Befehl in der sh so starte, dass er das gewünschte Ergebnis bringt. Also alles in Butter, danke,
S.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.10.2006, 20:17 Uhr
Pablo
Supertux
(Operator)



Zitat von flappinski:
Du hast Recht, bei mir zeigt das auch auf die bash, aber dennoch werden die systemcalls als sh-Befehle interpretiert, jedenfalls scheint es mir so. Ich habe inzwischen jedoch herausgefunden, wie ich den Befehl in der sh so starte, dass er das gewünschte Ergebnis bringt. Also alles in Butter, danke,
S.


du müsstest dir was eigenes basteln, denn system führt immer alles mit sh aus. Siehe system(3)
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.10.2006, 20:20 Uhr
Pler
Einer von Vielen
(Operator)


Ja und wo ist das Problem, wenn sh nur ein link auf bash ist? Oder wird die Bash mit dem "Verhalte dich wie sh" - Schalter aufgerufen wird.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.10.2006, 20:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von Pler:
Ja und wo ist das Problem, wenn sh nur ein link auf bash ist? Oder wird die Bash mit dem "Verhalte dich wie sh" - Schalter aufgerufen wird.

das ist bei einigen distris (oder sogar bei allen?) das standardverhalten wenn man "sh" benutzt statt "bash"
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.10.2006, 21:02 Uhr
Pler
Einer von Vielen
(Operator)


Wie? Echt? Hab ich noch nie was von gehört.
Hab schon öfter "Bash"-Skripte gesehen die mit #!/bin/sh anfangen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.10.2006, 23:21 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja denk mal die aufrufe als login-shell, wie system es ja imho macht, die sind eben entsprechend.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
11.10.2006, 11:47 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von flappinski:
Hallo Leute,
ich wollte einen Systemcall aufrufen, wobei mir ein merkwürdiges Verhalten dieses Befehls auffiel. Irgendwann habe ich gescheckt, dass der Systemcall mit sh gestartet wird. Wie kann ich denn jetzt das System überreden, den Befehl mit der bash zu starten?
Danke im Vorraus...


Ein Programm, welches system verwendet ist generell nicht von einer Installation auf eine andere übertragbar (ich meine jetzt nicht OS technisch, sondern wirklich Installation). Dh wenn Du Dein Programm halbwegs sicher halten willst, lass die Finger von system.

Wenn es zwingend system sein musst, kannst Du ja sowas machen wie
system("kommando") ersetzen durch system("bash -c kommando"). Ist aber auch nur eine Krücke und Teufelswerk.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.10.2006, 15:48 Uhr
flappinski



jut, vielen Danbk erstmal, ich habe es wie gesagt so halbwegs mit der sh geschafft. Zunächst bleibt das Programm ja noch in meinem näheren Umfeld, später dann kann ich immer noch über andere Dinge nschdenken.
Grüsse,
Stephan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: