Shell scriptek HELP! (Unix vizsga…)

Kezdőlap Fórumok Programozás Shell scriptek HELP! (Unix vizsga…)

10 bejegyzés megtekintése - 1-10 / 10
  • Szerző
    Bejegyzés
  • #1926510
    blablablablabla
    Felhasználó

      Minden rossz íz nélkül: ez a vizsga milyen szintû végzettséget ad? Egyébként ezt a kérdéskört úgy értheted meg, ha vmilyen busybox-shellgyûjteményt megnézel 😆

      #1926511
      Bilux
      Felhasználó

        Fõiskola elsõ félév….

        #1926512
        PAZO
        Felhasználó

          1. Sok Unix rendszerben a cp, mv, In parancs egy programként van  
          megvalósítva, melyre különbözõ nevekkel lehet hivatkozni (hard linkek).  

          #1926513
          gaboro
          Felhasználó

            gondolom, bash-t kell programozni.
            nem vagyok nagy bash programozó, igazából semmi tapasztalatom, de pl. az 5-ösre én ezt csinálnám:

            Code:
            #!/bin/bash

            SearchForFile()

            {

            local file    # a rekurzió miatt közelezõ

            if [ -d „$1” ]; # csak ha könyvtár

            then

             cd „$1”

             for file in $PWD/.??* $PWD/*

             do

               if [ -f „$file” ]; # fájl

               then

                 local path

                 path=${file%/*}

                 if [ „${path##*”${file##*/}”*}” != „$path” ]

                 then        

                   echo $file

                 fi

               elif [ -d „$file” ]; # könyvtár

               then

                 if [ -x „$file” ];

                 then

                   SearchForFile $file

                 fi

               fi

             done

            fi

            }

            # indítás az aktuális könyvtárra

            SearchForFile $PWD

            remélem, a tapasztaltabbak majd írnak jobbat neked. vagy inkább egy kicsit utánaolvasol (pl: http://www.tldp.org/LDP/abs/html/index.html)

            #1926514
            gaboro
            Felhasználó

              1-esre:

              Code:
              #!/bin/bash

              if [ -L „$1” ];

              then

               echo „link”

              else

               echo „nem link”

              fi

              #1926515
              gaboro
              Felhasználó

                A 2-re:
                http://www.tldp.org/LDP/abs/html/parameter…tution.html#RFE
                majdnem jó, csak ki kell egészíteni a könyvtár paraméterrel, vagyis az argumentumok száma 3 kell legyen, és a for ciklust kicsit átalakítva:

                Code:
                #!/bin/bash

                ARGS=3

                E_BADARGS=65

                E_NOTDIR=66

                if [ $# -ne „$ARGS” ]

                then

                 echo „Használat: `basename $0` könyvtár régi_kiterjesztés új_kiterjesztés”

                 exit $E_BADARGS

                fi

                if [ -d „$1” ];

                then

                 for filename in *.$2

                 do

                   if [ -z `mv $filename ${filename%$2}$3` ];

                   then

                     echo „$filename átnevezve”

                   else

                     echo „Hiba a $filename átnevezésénél”

                   fi

                 done

                 exit 0

                else

                 echo „Az elsõ paraméter könyvtár kell legyen!”

                 exit $E_NOTDIR

                fi

                ezek elég egyszerû feladatok. minden rosszindulat nélkül meg kell kérdeznem: tényleg próbáltál már mindent, meg olvastál shellprogramozásról már valamit? sok sikert.

                #1926516
                gaboro
                Felhasználó

                  A 2-re:
                  http://www.tldp.org/LDP/abs/html/parameter…tution.html#RFE
                  majdnem jó, csak ki kell egészíteni a könyvtár paraméterrel, vagyis az argumentumok száma 3 kell legyen, és a for ciklust kicsit átalakítva:

                  Code:
                  #!/bin/bash

                  ARGS=3

                  E_BADARGS=65

                  E_NOTDIR=66

                  if [ $# -ne „$ARGS” ]

                  then

                   echo „Használat: `basename $0` könyvtár régi_kiterjesztés új_kiterjesztés”

                   exit $E_BADARGS

                  fi

                  if [ -d „$1” ];

                  then

                   for filename in *.$2

                   do

                     if [ -z `mv $filename ${filename%$2}$3` ];

                     then

                       echo „$filename átnevezve”

                     else

                       echo „Hiba a $filename átnevezésénél”

                     fi

                   done

                   exit 0

                  else

                   echo „Az elsõ paraméter könyvtár kell legyen!”

                   exit $E_NOTDIR

                  fi

                  ezek elég egyszerû feladatok. minden rosszindulat nélkül meg kell kérdeznem: tényleg próbáltál már mindent, meg olvastál shellprogramozásról már valamit? sok sikert.

                  #1926517
                  Bilux
                  Felhasználó

                    Elsõre:

                    Code:
                    if [ $(ls -1i `which mv` `which cp` `which ln`|awk ‘{print $1}’|uniq|wc -l) -eq 1 ];

                    then echo „egyben vannak am”;

                    else echo „nincsenek egyben”;

                    fi

                    Code:
                    2.

                    #!/bin/bash

                    if [ $# -ne 3 ]; then

                    echo „hasznalat: $0 dir mit mire”

                    exit 1

                    fi

                    cd $1

                    if [ $? -ne 0 ]; then

                    exit 1

                    fi

                    for i in `ls *$2`; do

                    mv „$i” „`basename $i $2`$3”

                    done

                    4.

                    #!/bin/bash

                    if [ $# -ne 0 ]; then echo „$@” >> $0; exit; fi

                    cat $0|(read;read;read;cat);exit

                    #1926518
                    gaboro
                    Felhasználó
                      Code:
                      2.

                      #!/bin/bash

                      if [ $# -ne 3 ]; then

                      echo „hasznalat: $0 dir mit mire”

                      exit 1

                      fi

                      cd $1

                      if [ $? -ne 0 ]; then

                      exit 1

                      fi

                      for i in `ls *$2`; do

                      mv „$i” „`basename $i $2`$3”

                      done

                      és a hibák kezelése? egyébként az 1. tetszik.

                      #1872160
                      csaba
                      Felhasználó

                        1. Sok Unix rendszerben a cp, mv, In parancs egy programként van
                        megvalósítva, melyre különbözõ nevekkel lehet hivatkozni (hard linkek).

                      10 bejegyzés megtekintése - 1-10 / 10
                      • Be kell jelentkezni a hozzászóláshoz.