Eine Zeile einer Variblen Auslesen in Unix script ( Hilfe :'( )



  • Hallo ich hab volgendes

    #! /bin/sh
    
    ReplaceAndSplit()
    {
            if [ $# -eq 1 ]
            then
                    tr ' :.,;()"' '\n\n\n\n\n\n\n\n' < $1 | grep -v '^$'
            else
                    echo \
                         \!\!\!FATAL ERROR\!\!\!.
                    exit 1
            fi
    }
    

    Und das speichere ich jetzt in einer variable

    WordsLibrary=`ReplaceAndSplit $1`
    

    Und jetzt hab ich ne funktion die eine zeile ausgibt.

    GetLine()
    {
    #       echo "$3"
    #       if [ $# -ne 2 ]
    #       then
    #               echo \
    #                     \!\!\!FATAL ERROR\!\!\!. \
    #               exit 3
    #       fi
            i= $1
            i=`expr $1 + 1`
            sed -ne "$i p" < $2
    }
    

    Aber wenn ich dan das mache

    WordPattern=`GetLine $LineCounter  $WordsLibrary`
    

    Bekomme ich fehler das es keine datei gibt 😮

    Alles zusammen

    electra:/home/users/std02179/Shell_Progs>clear
    electra:/home/users/std02179/Shell_Progs>cat cntwrds
    #! /bin/sh
    
    ReplaceAndSplit()
    {
            if [ $# -eq 1 ]
            then
                    tr ' :.,;()"' '\n\n\n\n\n\n\n\n' < $1 | grep -v '^$'
            else
                    echo \
                         \!\!\!FATAL ERROR\!\!\!. \
                          La8os eisodo dedomenon.\\n
                    exit 1
            fi
    }
    
    GetLines()
    {
            i=$1
            while [ ! -r $3 ]
            do
                    if [ $# -ne 3 ]
                    then
                            echo \
                                 \!\!\!Fatal Error\!\!\!. \
                                 La8os eisodos dedomenon.\\n
                            exit 2
                    else
                            i=`expr $i + 1`
                            sed -ne "$i p" < $3
                    fi
            done
    }
    
    GetLine()
    {
    #       echo "$3"
    #       if [ $# -ne 2 ]
    #       then
    #               echo \
    #                     \!\!\!FATAL ERROR\!\!\!. \
    #                      La8os eisodos dedomenon good bye Mr.Bond.\\n
    #               exit 3
    #       fi
            i= $1
            i=`expr $1 + 1`
            sed -ne "$i p" < $2
    }
    
    Add1()
    {
            if [ $# -ne 1 ]
            then
                    echo \
                         \!\!\!Fatal Error\!\!\!. \
                         La8os eisodos dedomenon to programma termatizei.\\n
                    exit 4
            else
                    expr $1 + 1
            fi
    }
    
    ##Main
    WordsLibary=""
    LineCounter=0
    WordCounter=0
    WordPattern=""
    
                    #Kurio Meros
    
    WordsLibrary=`ReplaceAndSplit $1`
    
    WordPattern=`GetLine $LineCounter  '$WordsLibrary'`
    echo "$WordPattern"
    
    #for #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
    #do
    #       NewWord=`GetLine $LineCounter $3`
    #       if [ NewWord = WordPattern ]
    #       then
    #               WordCounter=`Add1 $WordCounter`
    #       else
    #               echo "$NewWord / $WordCounter"
    #               WordConter=0
    #               WordPattern=`GetLine Add1 $LineCounter $WordsLibary`
    #       fi
    #       LineCounter=`Add1 $LineCounter`
    #done
    electra:/home/users/std02179/Shell_Progs>
    

    Weis einer rad 😢

    Ich will so was machen wen ich z.b. ne wariable hab mit wert

    WordsLibrary =
    Wort1
    Wort2
    Wort3
    Wort4
    Wort5
    Wort6
    Wort7

    Und ich dan z.b das eingebe
    WordPattern=`GetLine 3 '$WordsLibrary'`
    echo WordPattern
    ich das bekome
    Wort2

    aber funktioniert nicht irgentwie 😞 😡


Anmelden zum Antworten