Bash script

Kezdőlap Fórumok Programozás Bash script

10 bejegyzés megtekintése - 21-30 / 438
  • Szerző
    Bejegyzés
  • #2053199
    pointux
    Felhasználó

      if [ $0 -eq mnt ] – ez így nem jó, elõször is, számra vonatkozik, amibõl csak egy változó lehet, a másiknak konstansnak kell lennie. Bár minden bizonnyal ez a mnt string akar lenni, akkor „”-közé kell helyezni és így kell helyesen írni: if [ $0 == „mnt” ]

      #2053200
      ELaci
      Felhasználó

        így kell helyesen írni: if [ $0 == „mnt” ]

        Sõt így:  if [ „$0” == „mnt” ]

        Azt is elmondom miért. Ha a $0 üres sztring akkor ez a  forma if [ $0 == „mnt” ] hibát okoz futás közben, mert így fog kinézni:  if [ == „mnt” ] Ellenben ez a formula if [ „$0” == „mnt” ] üres $0 esetén futás közben így fog kinézni: if [ „” == „mnt” ] ami nem okoz hibát.
        Az azonban tény hogy a $0 a script saját neve tehát nem lehet üres, de ez a szemlélet vonatkozhat bármilyen más változóra is pl. egy $x nevûre. 

        ELaci

        #2053201
        pointux
        Felhasználó

          ” if [ „” == „mnt” ] ami nem okoz hibát.”
          Ez igaz. Viszont, ha a $x paraméter akar lenni, akkor az meg $1, vagy nagyobb nem $0. (Bár itt lehet, hogy nem arról van szó…)

          #2053202
          Davs
          Felhasználó

            #!/bin/bash
            if [ „$0” == „mnt” ]; then
            if [ -e /mnt/$1 ]; then
              mount /dev/$1 /mnt/$1
              if [ $? -eq 0 ]; then
              echo „A(z) $1 sikeresen felcsatolva”
              cd /mnt/$1
              else
              mkdir /mnt/$1
              mount /dev/$1 /mnt/$1 
              if [ $? -eq 0 ]; then
                echo ” A(z) $1 sikeresen felcsatolva ! ”   
                cd /mnt/$1
              else
                echo „Hiba1”
              fi
              fi
            else
              echo „Hiba2”
            fi
            else
            if [ „$0” == „umnt” ]; then
              umount /dev/$1
              if [ $? -eq 0 ]; then
              echo „A(z) $1 sikeresen lecsatolva”
              else
              echo „Hiba3”
              fi
            else
              echo „Hiba4”
            fi
            f

            Hi így változtattam meg. Most azt írja ki, hogy Hiba4, amikor beírom, hogy mnt hda1

            #2053203
            milfer
            Felhasználó
              Davs wrote:
              #!/bin/bash
              if [ „$0” == „mnt” ]; then
              if [ -e /mnt/$1 ]; then
                mount /dev/$1 /mnt/$1
                if [ $? -eq 0 ]; then
                 echo „A(z) $1 sikeresen felcsatolva”
                 cd /mnt/$1
                else
                 mkdir /mnt/$1
                 mount /dev/$1 /mnt/$1   
                 if [ $? -eq 0 ]; then
                  echo ” A(z) $1 sikeresen felcsatolva ! ”   
                  cd /mnt/$1
                 else
                  echo „Hiba1”
                 fi
                fi
              else
                echo „Hiba2”
              fi
              else
              if [ „$0” == „umnt” ]; then
                umount /dev/$1
                if [ $? -eq 0 ]; then
                 echo „A(z) $1 sikeresen lecsatolva”
                else
                 echo „Hiba3”
                fi
              else
                echo „Hiba4”
              fi
              f

              Hi így változtattam meg. Most azt írja ki, hogy Hiba4, amikor beírom, hogy mnt hda1

              Hi

              #2053204
              pointux
              Felhasználó

                Ellenben a $1-et tényleg ajánlatos idézõjelbe rakni, mert bármi lehet… (amíg az $0 nem). Bár, ha biztos a dolog, akkor tök mindegy…
                (Egyébként nem követsz el hibát, ha „mindent” idézõjelbe raksz.)

                „A $0 az a file neve teljes elérési úttal.”
                Még ez sem igaz… attól függ hogy, hogy futtatja. Lehet ./… is.

                #2053205
                Davs
                Felhasználó

                  #!/bin/bash
                  if [ $1 ]; then
                  if [ -e /mnt/$1 ]; then
                    umount /dev/$1
                    if [ $? -eq 0 ]; then
                    rmdir /mnt/$1
                    echo „The $1 succesfully umounted!”
                    else
                    echo „Error! See the log file at /var/log/mnt.log”
                    fi
                  else
                    mkdir /mnt/$1
                    mount /dev/$1 /mnt/$1>>LOG
                    if [ $? -eq 0 ]; then
                    echo „The $1 succesfully mounted!”
                    else
                    echo „Error! See the log file at /var/log/mnt.log”
                    fi
                    if [ -e /var/log/mnt.log ]; then
                    $LOG>>/var/log/mnt.log
                    else
                    touch /var/log/mnt.log
                    $LOG>>/var/log/mnt.log
                    fi
                    cd /mnt/$1
                  fi
                  fi

                  Hy!

                  #2053206
                  milfer
                  Felhasználó
                    vizsla wrote:
                    „A $0 az a file neve teljes elérési úttal.”
                    Még ez sem igaz… attól függ hogy, hogy futtatja. Lehet ./… is.
                    #2053207
                    milfer
                    Felhasználó

                      A megasztár közben volt idõm kicsit szorakozni.  😀
                      Ez mûködik, úgy ahogy eredetileg elképzelted. (mnt  hda1, umnt hda1) Ha akarod bõvitsd ki a logolós résszel.

                      #!/bin/bash
                      ERR=”HIBA”
                      DONE=”K[code]
                      #!/bin/bash
                      ERR=”HIBA”
                      DONE=”K

                      #2053208
                      pointux
                      Felhasználó

                        „Tehát az if [  „$0” == „mnt” ] akkor sem mûködik.”
                        Persze hogy nem :)… csak fel akartam hívni a figyelmet, hogy a „/sbin…” is csak leegyszerûsítése ennek a problémának.

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