Bash script

Kezdőlap Fórumok Programozás Bash script

10 bejegyzés megtekintése - 381-390 / 438
  • Szerző
    Bejegyzés
  • #2053559
    birno
    Felhasználó

      S mi van akkor ha ” ‘ ” jel van a fájl nevében és nem megoldható a csillagozós módszerrel?
      Mert én eddig akárhogy próbáltam „” jelekkel levédeni sed-es átalakítás segítségével, sehogy nem jött össze.
      Csak mivel ritkán fordul elő, ezért nem jöttem még ide a kérdéssel, de ha már itt tartunk. 🙂

      Pontos scriptet most nem tudom másolni(bár valamely korábbi hsz-be megvan szerintem), így csak elméleti síkon érdeklődőm.
      alias-al szintén nem megoldható, mert nem terminálból futtatom, hanem gyorsbillentyűre van rádrótozva vagy fájl típushoz hozzárendelve.

      #2053560
      uzsolt
      Felhasználó

        Nem értem, mi a gond:

        Code:
        $ ls
        alma  alma’korte  korte  szkript
        $ cat szkript
        for i in *; do file $i; done
        echo ——-
        while [ $# -gt 0 ]; do
            file $1
            shift
        done

        $ ./szkript *
        alma: directory
        alma’korte: directory
        korte: directory
        szkript: ASCII text
        ——-
        alma: directory
        alma’korte: directory
        korte: directory
        szkript: ASCII text

        #2053561
        birno
        Felhasználó
          Code:
          /$cat /home/norbi/scripts/player
          #!/bin/sh
          cd „$(dirname „$1″)”
          ass=$(ls|grep ‘.ass$’)
          file=$(echo $(basename „$1”)|sed ‘s/ /\ /g’|sed ‘s/[/\[/g’|sed ‘s/]/\]/g’)
          if [ -n „$ass” ]; then
          profile=ass
          else
          profile=srt
          fi
          ls|grep -A 100 „$file”|sed ‘s/ /\ /g’|xargs sudo nice -n -10 mplayer -fs -profile $profile

          /$sh /home/norbi/scripts/player /media/files/Downloads/avi/A Walk To Remember/A Walk’To Remember.avi
          A Walk’To Remember.avi
          MPlayer 1.0rc1-4.1.2-DFSG-free (C) 2000-2006 MPlayer Team
          CPU: AMD Athlon(tm) XP 2500+ (Family: 6, Model: 10, Stepping: 0)
          CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
          Compiled with runtime CPU detection.
          mplayer: could not connect to socket
          mplayer: No such file or directory
          Failed to open LIRC support. You will not be able to use your remote control.

          Playing A Walk’To Remember.avi
          A Walk’To Remember.srt
          .
          File not found: ‘A Walk’To Remember.avi
          A Walk’To Remember.srt

          Failed to open A Walk’To Remember.avi
          A Walk’To Remember.srt
          .

          Exiting… (End of file)
          /$

          Ha megpróbálom pl. így levédeni:

          Code:
          sed „s/’/\’/g”

          akkor is ugyanezt az eredményt kapom, többféleképp is kísérleteztem vele anno, már nem emlékszem pontosan mikkel, de sehogy nem jött össze..

          #2053562
          milfer
          Felhasználó
            uzsolt wrote:
            Ezt már írtam:

            uzsolt wrote:
            Erre nem kell szkript, egy alias is elég:

            Code:
            alias audio-cd=”wodim -audio”

            Ezután audio-cd *.wav kiírja neked az audio cédét.

            milfer wrote:
            $COMMAND

            Jobb az, ha eval $COMMAND módon hívod meg.

            Uzsolt te rendkívűl makacs tudsz lenni.  😀
            1. Nem véletlenűl írtam, hogy azt az aliasos dolgot hagyjuk. Ez a script nem csak audio cédét tud írni, hanem olyat amilyen névvel indítod el (audio, iso, video, stb.).
            2. Azt is írtam, hogy ha parancssorból indítom a wodimot így : wodim [paraméterek] -audio „/home/music/ez a zene.wav” akkor jól működik. Ha ugyanilyen paraméterekkel indítom a szkriptből akkor a ‘”/home/music/ez’ nevű fájl nem található üzenettel leáll a wodim.

            Ezt tessék már elhinni.  😉

            Irhatsz te itt példákat az ls-ről, file-ről, mkdir-ről. Azok jól működnek, de a wodim nem.

            #2053563
            kisbetu
            Felhasználó
              milfer wrote:
              Uzsolt te rendkívűl makacs tudsz lenni.  😀
              1. Nem véletlenűl írtam,
              Ezt tessék már elhinni.  😉

              +1

              #2053564
              pointux
              Felhasználó
                milfer wrote:
                wodim -audio /home/music/ez a zene.wav

                ez 4 parancssori paraméter

                milfer wrote:
                Ha parancssorból tabbal egészítem ki a nevet akkor jó :
                wodim -audio /home/music/ez a zene.wav

                Ha parancssorból ” ” jelek közé teszem akkor is jó :
                wodim -audio „/home/music/ez a zene.wav”

                ezek meg 2… érzed a különbséget?

                milfer wrote:
                Mi a különbség a parancssori wodim -audio „/home/music/ez a zene.wav” és a scripten belüli wodim -audio „/home/music/ez a zene.wav” között.

                Hogy még mindig 4 paraméter, 2 helyett. :)))

                milfer wrote:
                Hogyan tudnám a scriptből úgy összeállítani a parancssort, hogy azt el is fogadja.

                Hozzátéve, hogy mivel a paramétereket space választja el egymástól… baromság a space-eket hagyományos karakterként kezelni:

                Code:
                prm=”$1″

                shift

                while [ „$#” != „0” ]; do
                prm+=” $1″
                shift
                done

                touch „${prm}”

                Már csak az a kérdés, hogy adott esetben miből fogod tudni eldönteni, hogy az adott space paramétert választ el, vagy ugyanazon paraméter tagja?
                Persze ez már legyen a te bajod… 🙂

                #2053565
                uzsolt
                Felhasználó
                  milfer wrote:
                  Uzsolt te rendkívűl makacs tudsz lenni.  😀
                  1. Nem véletlenűl írtam, hogy azt az aliasos dolgot hagyjuk. Ez a script nem csak audio cédét tud írni, hanem olyat amilyen névvel indítod el (audio, iso, video, stb.).
                  Ja, erről nem volt szó 😉 Azt hittem, hogy csak audio cd-t akarsz így írni. Legalábbis a kódod (vagy inkább részleted) tele van AUDIO szavakkal 😉

                  milfer wrote:
                  2. Azt is írtam, hogy ha parancssorból indítom a wodimot így : wodim [paraméterek] -audio „/home/music/ez a zene.wav” akkor jól működik. Ha ugyanilyen paraméterekkel indítom a szkriptből akkor a ‘”/home/music/ez’ nevű fájl nem található üzenettel leáll a wodim.
                  Akkor mellékeld már ide az egész kódot! Igaz, hogy már megoldottad, de engem azért izgat, hogy miért nem megy, hogy hol nem veszi át/hol tűnik el a paraméter{t,}.
                  Meg persze az se világos, hogy miért van különbség az én mkdir-es meg egyéb példám és a wodim között (már ha egyáltalán van különbség).
                  A COMMAND-ot megpróbáltad eval $COMMAND módon hívni?

                  kisbetu wrote:
                  milfer wrote:
                  Uzsolt te rendkívűl makacs tudsz lenni.  😀
                  1. Nem véletlenűl írtam,
                  Ezt tessék már elhinni.  😉
                  +1

                  Hát naná! 😀

                  #2053566
                  milfer
                  Felhasználó
                    uzsolt wrote:
                    milfer wrote:
                    Uzsolt te rendkívűl makacs tudsz lenni.  😀
                    1. Nem véletlenűl írtam, hogy azt az aliasos dolgot hagyjuk. Ez a script nem csak audio cédét tud írni, hanem olyat amilyen névvel indítod el (audio, iso, video, stb.).
                    Ja, erről nem volt szó 😉 Azt hittem, hogy csak audio cd-t akarsz így írni. Legalábbis a kódod (vagy inkább részleted) tele van AUDIO szavakkal 😉

                    Szokd már meg, hogy nálam a legrövidebb bash szkript is több mint 10000 byte.  😀

                    uzsolt wrote:
                    milfer wrote:
                    2. Azt is írtam, hogy ha parancssorból indítom a wodimot így : wodim [paraméterek] -audio „/home/music/ez a zene.wav” akkor jól működik. Ha ugyanilyen paraméterekkel indítom a szkriptből akkor a ‘”/home/music/ez’ nevű fájl nem található üzenettel leáll a wodim.
                    Akkor mellékeld már ide az egész kódot! Igaz, hogy már megoldottad, de engem azért izgat, hogy miért nem megy, hogy hol nem veszi át/hol tűnik el a paraméter{t,}.
                    Meg persze az se világos, hogy miért van különbség az én mkdir-es meg egyéb példám és a wodim között (már ha egyáltalán van különbség).
                    A COMMAND-ot megpróbáltad eval $COMMAND módon hívni?

                    Most volt alkalmam kipróbálni. Megint nyertél egy hangszórót.  😀
                    Tehát így nem jó : ${COMMAND}
                    így sem jó : exec ${COMMAND}
                    De így jó : eval ${COMMAND}

                    #2053567
                    uzsolt
                    Felhasználó
                      milfer wrote:
                      De így jó : eval ${COMMAND}
                      Ez azt jelenti, hogy minden bolond karaktert kezel? Aposztróf, szóköz, stb?
                      #2053568
                      milfer
                      Felhasználó
                        uzsolt wrote:
                        milfer wrote:
                        De így jó : eval ${COMMAND}
                        Ez azt jelenti, hogy minden bolond karaktert kezel? Aposztróf, szóköz, stb?

                        Igen.
                        Ez a parancs még változókkal.
                        COMMAND=”${CD_WRITER_PRG} dev=${WRITER_DEVICE} gracetime=10 fs=1024k -v -useinfo speed=${WRITING_SPEED} -dao -dummy -pad -overburn ${AUDIO_TRACKS}”

                        Ez a teljes parancssor már behelyettesítve:
                        /usr/bin/wodim dev=/dev/sr0 gracetime=10 fs=1024k -v -useinfo speed=4 -dao -dummy -pad -overburn  -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T01- Intro.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T02-Say What.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T03-Looking At Your Window.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T04-Little Sister.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T05-Mary Had A Little Lamb.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T06-Pride And Joy.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T07-Texas Flood.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T08-Superstition.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T09-Willie The Wimp.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T10-Couldn’t Stand The Weather.wav”

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