Zum Inhalt springen

Scratch

Mitglieder
  • Gesamte Inhalte

    485
  • Benutzer seit

  • Letzter Besuch

Beiträge von Scratch

  1. Also leider geht es nicht wirklich ...

    ich hab jetzt aber 2 bessere Testscripte für jeden der mir noch helfen möchte.

    script1

    parama=$1
    
    
    echo "1 --- parama="$parama
    
    
    if [ $parama ]
    
    then
    
    	echo "1 --- parama is set"
    
    
    	if [ -d $parama ]
    
    	then
    
    		echo "1 --- dir: "$parama
    
    		export ABC=$parama
    
    	else
    
    		echo "1 --- dir does not exist"
    
    	fi
    
    else
    
    	echo "1 --- standard: /opt/abc"
    
    	export ABC=/opt/abc
    
    fi
    script2
    command=$1
    
    directory=$2
    
    
    echo "2 --- command="$command
    
    echo "2 --- directory="$directory
    
    
    if [ $command ]
    
    then
    
    	echo "2 --- command is set"
    
    
    	if [ $directory ]
    
    	then
    
    		echo "2 --- directory is set"
    
    		. script1 $directory
    
    	else
    
    		echo "2 --- directory is not set"
    
    		. script1
    
    	fi
    
    else
    
    	echo "2 --- command is not set"
    
    fi
    Hier die Ergebnisse des Scriptes
    $ ./script2         #FALL 1 korrekt
    
    2 --- command=
    
    2 --- directory=
    
    2 --- command is not set
    
    
    $ ./script2 aaa         #FALL 2 falsch
    
    2 --- command=aaa
    
    2 --- directory=
    
    2 --- command is set
    
    2 --- directory is not set
    
    1 --- parama=aaa
    
    1 --- parama is set
    
    1 --- dir does not exist
    
    
    $ ./script2 aaa /opt/         #FALL 3 korrekt
    
    2 --- command=aaa
    
    2 --- directory=/opt/
    
    2 --- command is set
    
    2 --- directory is set
    
    1 --- parama=/opt/
    
    1 --- parama is set
    
    1 --- dir: /opt/
    
    
    $ ./script2 aaa bbb         #FALL 4 korrekt
    
    2 --- command=aaa
    
    2 --- directory=bbb
    
    2 --- command is set
    
    2 --- directory is set
    
    1 --- parama=bbb
    
    1 --- parama is set
    
    1 --- dir does not exist

    Bis auf Fall 2 geht alles.

    Wie man sieht übernimmt hier "parama" den wert von "command" und das soll es nicht ... Für Fall 2 sollte das Ergebnis "dir: /opt/abc" sein.

    Danke!!

    Gruß Scratch

  2. Hi,

    kleines Problem mit Shellscripten und Parametern.

    script1

    param1_dir=$1
    
    echo $param1_dir
    
    
    if [ -d $param1_dir ]
    
    then
    
    	export ABC=$param1_dir
    
    else
    
    	export ABC=/opt/abc
    
    fi
    script2
    param1_command=$1
    
    param2_dir=$2
    
    
    if [ $param1_command ]
    
    then
    
    	. script1 $param2_dir
    
    else
    
    	. script1
    
    fi

    Problem ist nun wenn ich script1 alleine starte funktionierts wunderbar.

    Starte ich script2 mit

    ./script2 delete /opt/abc

    funktioniert alles.

    ./script delete

    funktioniert nicht weil bei script eins dann beim echo $param1_dir "delete" ausgegeben wird.

    Problem ist also das wenn ich script1 ohne Parameter aus script2 aufrufe übergibt er immer das $param1_command als $1.

    Weiss jemand wie ich das umgehen kann?

    Gruß Scratch

  3. Wie kann ich reagieren wenn ein Fehler Auftritt in dem externen Programm ...

    Ich möchte zum Beispiel eine tar einer Datei machen und die Datei wird vorher gelöscht oder es wurden falsche Parameter übergeben, die Platte ist voll und solche Geschichten.

    Mein Programm sollte dann reagieren können.

    Im Prinzip die Rückgabe des Programms soll in meinem Programm sein ;-)

  4. Hi,

    die Forumsuche bietet ja sehr viel über das Thema.

    system() ist schlecht, steht zumindest überall.

    Aber mir fehlen jetzt die Alternativen.

    Ich möchte z.B. eine Datei mit zip komprimieren. (Win und linux)

    Oder speziell auf Linux jetzt ein .tar.gz macht

    Was für einen Befehl verwende ich den jetzt?

    Ich möchte möglichst plattformunabhängigkeit bleiben

    und die Ausgabe der aufgerufenen Programme lesen.

    Kann hier jemand etwas Licht ins Dunkel bringen??

    Danke!

    Gruß Scratch

  5. Ich glaub so eigenartig ist das garnicht ...

    den ich hab eben mal nachgeschaut in den Eigenschaften.

    Egal ob ich Debug oder Release wähle, unter C/C++ -> Optimierung sind alle Einstellungen gleich ...

    Hab noch ein paar weitere Punkte durchgeblättert und konnte nirgends einen Unterschied feststellen.

    Hab aber nie was daran rumgestellt!

    Gruß Scratch

  6. Wie groß ist dein Code ungefähr (in Zeilen)?

    Ca. 600 Zeilen in 3 Dateien

    Linkst du irgendwelche Bibliotheken dazu?

    Ja, boost.regex und ws2_32.lib für Sockets

    Wie groß sind Debug und Release genau?

    Debug: 221.184 Bytes

    Release: 221.184 Bytes

    Genau gleich groß ...

    Hast du irgendwas an den Projekteinstellungen geändert?

    Ja, bei "zusätliche Abhängigkeiten" die "ws2_32.lib" eingetragen.

    An den Einstellungen zu Release und Debug habe ich nichts geändert.

    Gruß Scratch

  7. Leider hab ich nochmal ein kleines Problem mit Boost unter Linux. Könnte auch daran liegen das ich mich mit gcc (bzw. g++) nicht so gut auskenne ;)

    Kompilieren von Boost an sich hat nun funktioniert.

    Jedoch erhalte ich beim Kompilieren meiner Anwendung ein paar Fehler die ungefähr so aussehen:

    /tmpdir/ccE73PRf.o(.gnu.linkonce.t._ZN5boost11regex_matchIPKcSaINS_9sub_matchIS2_EEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbT_SA_RNS_13match_resultsISA_T0_EERKNS_11basic_regexIT1_T2_EENS_15regex_constants12_match_flagsE+0x33): In function `bool boost::regex_match<char const*, std::allocator<boost::sub_match<char const*> >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(char const*, char const*, boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)':
    
    : undefined reference to `boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match()'

    Ich dachte erst das ich hier einfach noch die .a und .so Dateien für die Boost Regexps in meinen Programmordner kopieren muss. Hat aber nichts gebracht.

    Someone can help?

    Gruß Scratch

  8. Hi,

    ich hab ein kleines Problem mit Boost unter Linux.

    Ich habe es folgendermassen installiert:

    tar -xvzf boost_1_33_11.tar.gz
    
    cd boost_1_33_1/
    
    cd tools/
    
    cd jam_src/
    
    ./build.sh <-- wird Fehlerlos ausgeführt
    
    
    cd bin.linuxx86/
    
    cp bjam /root/c/boost_1_33_1/
    
    cd /root/c/boost_1_33_1/
    
    ./bjam "-sTOOLS=gcc" install

    Beim installieren selbst tretten sehr viele Fehler auf.

    Im lib Ordner enthalten sind am Schluss wirklich nur ein Bruchteil der lib's die ich in Windows habe auch die Ordnergröße ist mit 250 MB am Ende deutlich zu klein.

    Die Ausgabe ist voll von *: No such file or directory

    ...failed gcc-C++-action bin/boost/libs/serialization/build/libboost_serialization.a/gcc/debug/basic_text_iprimitive.o...

    gcc-C++-action bin/boost/libs/serialization/build/libboost_serialization.a/gcc/debug/basic_text_oprimitive.o

    /root/c/boost_1_33_1/libs/serialization/build/../src/basic_text_oprimitive.cpp:15:19: ostream: No such file or directory

    Unter Windows funktioniert es einwandfrei.

    Hatte evtl. jemand ein ähnliches Problem?

    Gruß Scratch

    PS: Sorry, ich wusste nicht in welches Forum das am besten passt ...

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...