Pomoc so scriptom

Sekcia: Programovanie 08.02.2008 | 14:18
Avatar Lubo FC8, Ubuntu, Solaris 10/u8  Používateľ
Dobry den!
Kedze neviem velmi programovat potreboval by som poradit ohladne skriptovania najlepsie v BASH-i.
O co mi ide: V adresary mam iso image s roznymi menamy ktore by som potreboval po jednom mount-nut na virtual drive potom do nich skocit spustit odtial instalacny skript, skopnut par suborou a na koniec umount-nut a tak dokola...

V command line to nieje problem ale kedze to musim robit 30 krat a na 3 roznych masinach tak by som to chcel zautomatizovat.

Vedela by mi nejaka dobra dusa poradit?
Nejde mi ani tak mountovanie a copyrovanie ale hlavne o ten vyber imagov po jednom.
    • Re: Pomoc so scriptom 08.02.2008 | 15:23
      Avatar nardew debian  Používateľ
      vid http://www.linuxos.sk/forum/12079/index.html
      pripadne ak je v tom adresari daky balast, este to bude treba odfiltrovat..
    • Re: Pomoc so scriptom 08.02.2008 | 15:30
      Avatar Frantisek Klabzuba Debian  Používateľ
      #!/bin/bash
      
      #  prvy parameter skiptu je meno iso suboru, pouzitie: ./skript prve.iso
      ISO=$1
      
      # uistime sa ze existuje adresar test kam budeme montovat
      mkdir test 2>/dev/null
      
      # primontujeme iso na ten adresar
      mount $ISO ./test -o loop -t iso9660
      
      # zapamatame si kde sme, vojdeme dnuka
      OLD=`pwd`
      cd ./test/niekde/skript/
      
      # spustime skript
      ./nieco.sh
      
      # vratime sa spat
      cd $OLD
      
      # skopirujeme tie subory niekam (tu treba byt konkretnejsi neviem ci vsetky alebo len niektore obrazky)
      cp ./test/porno/cernoska.jpg /etc/cernosky/
      cp ./test/porno/aziatka*.jpg /etc/aziatky/
      
      # vratime sa spat
      cd $OLD
      
      # odmontujeme
      umount ./test



      • Re: Pomoc so scriptom 08.02.2008 | 15:40
        Avatar Lubo FC8, Ubuntu, Solaris 10/u8  Používateľ
        Zacinam tomu pomali chapat ale ako donutim ten skript ./skript prve.iso aby potom pokracoval v chode po odmontovani prve.iso a zavolal si druhy iso subor a potom 3 a dalsi a dalsi az kim pride na to ze uz vsetky otvoril...
        • Re: Pomoc so scriptom 08.02.2008 | 15:47
          Avatar Lubo FC8, Ubuntu, Solaris 10/u8  Používateľ
          v podstate nieco ako cyklus v C-cku

          while (ISO$!=posledny iso subor v adresary)
          {
          mount ISO$
          cd /namontovany adresar
          cp par suborou s namontovaneho adresara
          ./pusti instalacny skript
          umount namontovany iso subor
          }
          • Re: Pomoc so scriptom 08.02.2008 | 17:04
            Avatar Frantisek Klabzuba Debian  Používateľ
            #!/bin/bash
            
            jeden() {
              #  prvy parameter skiptu je meno iso suboru, pouzitie: ./skript prve.iso
              ISO=$1
              # uistime sa ze existuje adresar test kam budeme montovat
              mkdir test 2>/dev/null
              # primontujeme iso na ten adresar
              mount $ISO ./test -o loop -t iso9660
              # zapamatame si kde sme, vojdeme dnuka
              OLD=`pwd`
              cd ./test/niekde/skript/
              # spustime skript
              ./nieco.sh
              # vratime sa spat
              cd $OLD
              # skopirujeme tie subory niekam (tu treba byt konkretnejsi neviem ci vsetky alebo len niektore obrazky)
              cp ./test/porno/cernoska.jpg /etc/cernosky/
              cp ./test/porno/aziatka*.jpg /etc/aziatky/
              # vratime sa spat
              cd $OLD
              # odmontujeme
              umount ./test
            }
            
            # pre vsetky .iso v akt. adresari
            for i in *.iso; do
              echo "Spracovavam iso subor: $i"
              jeden $i
            done
            
            • Re: Pomoc so scriptom 08.02.2008 | 17:14
              Avatar Lubo FC8, Ubuntu, Solaris 10/u8  Používateľ
              Diki moc! V pondelok to odskusam a dam vediet ci to funguje tak ako ma ...
              • Re: Pomoc so scriptom 08.02.2008 | 21:13
                Avatar nardew debian  Používateľ
                nebude ti to fungovat na subory s medzerou v nazve.
                riesenie: vid otazku, ktorej link som dal na zaciatku
            • Re: Pomoc so scriptom 11.02.2008 | 16:09
              Avatar Lubo FC8, Ubuntu, Solaris 10/u8  Používateľ
              Zdravim o5!

              Po mensich upravach mi to krasne funguje ale mal by som doplnujucu otazku.
              Totiz tie subory sa lisia aj verziami a tym padom potrebujem s roznych verizi skopnut cosi ine...
              Cize som to skusal nejako takto :

              if "$ISO" = "subor1.2"; then
              cp /mnt/blabla1.2/subor /test
              fi
              if "$ISO" = "subor1.3"; then
              cp /mnt/blabla1.3/subor /test
              fi

              A problem nastava pri tom porovnavani kedze mne staci porovnat zaciatok toho mena suboru a vyhodnotit podmienku.
              Ako mozem porovnat len prvych 8 znakov s mena suboru?
              Subory vyzeraju nejako takto:
              subor1.2_12345
              subor1.2_57048
              subor1.3_00342
              subor1.3_01654
              subor1.4_43566
              subor1.4_63412
              • Re: Pomoc so scriptom 11.02.2008 | 17:26
                Avatar nardew debian  Používateľ
                if $(echo "$ISO" | cut -f -8)...
                • Re: Pomoc so scriptom 11.02.2008 | 19:16
                  Avatar Lubo FC8, Ubuntu, Solaris 10/u8  Používateľ
                  No toto mi nefungovalo lebo to robim pod Solaris 10 ale dobre si ma naviedol...
                  Takto to funguje mne i ked predpokladam ze by sa to dalo aj do jedneho if vlozit...

                  A=`echo $ISO | cut -c1-8`
                  if [ $A = "subor1.2" ]; then
                  cp /mnt/adresar/subor1.2_1231245 /dakde/kde/to/ma/byt
                  fi
    • Re: Pomoc so scriptom 11.02.2008 | 19:23
      Avatar Lubo FC8, Ubuntu, Solaris 10/u8  Používateľ
      Dakujem Vam vsetkym!
      Velmi ste mi pomohly a vyzera to tak ze musim zacat s citamim knih ohladne skriptovania v BASH-i