Zählen in einem Shellscript

  1. edi38

    edi38 Thread StarterMacUser Mitglied

    Mitglied seit:
    01.02.2004
    Beiträge:
    94
    Zustimmungen:
    0
    Hallo zusammen,

    wie kann ich einem Shellscript eine Variable um 1 erhöhen? Also so wie $i++.
     
    edi38, 24.02.2004
  2. edi38

    edi38 Thread StarterMacUser Mitglied

    Mitglied seit:
    01.02.2004
    Beiträge:
    94
    Zustimmungen:
    0
    Hab in einem alten Unix-Handbuch folgende Möglichkeit gefunden:

    #!/bin/sh

    i='1'
    for file
    do
    echo $i $file
    i='expr $i + 1'
    done

    Leider kann MacOSX 10.3.2 den Ausdruck 'expr' nicht.

    Hat jemand einen Vorschlag?
     
    edi38, 24.02.2004
  3. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    hallo zusammen,

    natürlich kann OS X den Ausdruck "expr"
    warum soll der Panther das nicht können ?
     
    maceis, 24.02.2004
  4. edi38

    edi38 Thread StarterMacUser Mitglied

    Mitglied seit:
    01.02.2004
    Beiträge:
    94
    Zustimmungen:
    0
    Hallo maceis,

    wenn ich das Script wie gepostet startet, dann bekomme ich folgende Ausgabe:

    expr $i + 1 Documents
    expr $i + 1 Library
    expr $i + 1 Movies
    expr $i + 1 Music
    expr $i + 1 Pictures
    ...

    Was mache ich falsch?
     
    edi38, 24.02.2004
  5. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    hallo nochmal

    hier ist eine mögliche Lösung (tcsh, andere müssten auch gehen):
    saturn:~] maceis% set i=1
    [saturn:~] maceis% echo $i
    1
    [saturn:~] maceis% set i=`expr $i + 1`
    [saturn:~] maceis% echo $i
    2
    [saturn:~] maceis%
     
    maceis, 24.02.2004
  6. edi38

    edi38 Thread StarterMacUser Mitglied

    Mitglied seit:
    01.02.2004
    Beiträge:
    94
    Zustimmungen:
    0
    Irgendwas klappt nicht. Habe jetzt den Code wie folgt

    #!/bin/sh

    set i=1
    for file
    do
    echo $i $file
    set i='expr $i + 1'
    done

    Ich starte mit: ./test.sh *

    Ergebnis:
    i=1

    Das ist alles.
     
    edi38, 24.02.2004
  7. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    hallo edi,
    das problem liegt wohl in der Anwendung der for Schleife

    hast du meine Schnipsel mal probiert ?

    Was willst du eigentlich genau erreichen ?
     
    maceis, 24.02.2004
  8. edi38

    edi38 Thread StarterMacUser Mitglied

    Mitglied seit:
    01.02.2004
    Beiträge:
    94
    Zustimmungen:
    0
    Das Ziel ist folgendes:

    Ich bekomme von einem Kunden Bilder geschickt, die fuer eine Shop-System in ein bestimmtes Verzeichnis kopiert werden und dann mit einer DB verlinkt werden. Die Dateinamen sind irgendwelche 12-stelligen Zahlenkombinationen (wahrscheinlich von einer Digitalkamera). Ich moechte nun die Bilder fortlaufend umbenennen. Also 0001.gif, 0002.gif, etc.. Wenn nun neue Bilder vom Kunden kommen, sehe ich im Verzeichnis sofort, welche Files neu sind. Auch sind die Datenbankeintraege dann nachvollziehbarer und ich muss nicht jedesmal diese lange Zahl notieren.

    Am Besten waere folgendes für den Dateinamen:

    $i_konstanter_text.gif

    wobei $i aufsteigend verlaeuft.

    Vielen Dank fuer Deine Hilfe soweit.
     
    edi38, 25.02.2004
  9. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    probier mal das aus:

    #!/bin/sh
    # Skript macuser
    # addiere 1 zu der Variablen i

    echo "Geben Sie die Variable i ein (Ganzzahl)"
    read i
    echo $i
    i=`expr $i + 1`
    echo $i



    Testlauf:
    [saturn:~/bin] maceis% ./macuser
    Geben Sie die Variable i ein (Ganzzahl)
    15
    15
    16

    [saturn:~/bin] maceis%

    Eingaben sind blau, Programmausgaben rot
     
    maceis, 25.02.2004
  10. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    okay, wieviel Zeit hast du ?
     
    maceis, 25.02.2004
Die Seite wird geladen...
Ähnliche Themen - Zählen einem Shellscript
  1. FrankST
    Antworten:
    9
    Aufrufe:
    315
    little_pixel
    09.05.2017
  2. xxAusgang
    Antworten:
    8
    Aufrufe:
    973
    xxAusgang
    28.11.2013
  3. ruebezahl
    Antworten:
    3
    Aufrufe:
    856
    ruebezahl
    15.06.2012
  4. muschel
    Antworten:
    19
    Aufrufe:
    2.046
    Copland
    30.08.2010
  5. rjkmöm
    Antworten:
    15
    Aufrufe:
    2.860
    rjkmöm
    03.09.2008