Bash script

Kezdőlap Fórumok Programozás Bash script

10 bejegyzés megtekintése - 281-290 / 438
  • Szerző
    Bejegyzés
  • #2053459
    milfer
    Felhasználó
      Code:
      #!/bin/bash

      for i in `ls $1/*` ; do
        if [ -x $i ]; then
        $i &
        else
          echo „$i nem futtatható”
        fi
      done

      Elmented start néven.

      Indítás így: start az_a_mappa_amiben_vannak_a_futtatható_dolgaid

      #2053460
      elnoyle
      Felhasználó

        köszönöm szépen, működik.

        elnoyle 

        #2053461
        csablak
        Felhasználó

          Lehet nem ide tartozik, de segítséget kérnék olyan ügyben mint tv felvétel.

          Maga a felvevő script működik, de szeretném kérdés-felelet formában megoldani a dolgot.
          Kérdezze meg hogy melyik adó, milyen hosszú a felvétel, és annak megfelelően állítsa be a frekit, endpos-t.
          Ez az adó és freki párosítás egy külön fájlban ösze van gyűjtve. De tovább megyek ugyanitt összegyűjteném a delogo beállításokat is. és azt is be kéne fűzni a scriptbe.

          Jelenleg vizsla módszere alapján így van a dolog megoldva:

          Code:
          # Hang beállítása
          /usr/bin/aumix -l 0 -l R -i 75

          # A felvétel idejére figyelni…!
          HOSSZ=”00:00:30″

          # Csatorna
          CHANNEL=”freq=224.250″

          TODAY=$( date +%Y-%m-%d )
          NOW=$( date +%H:%M )

          FILE_NAME=”Tv_rip”
          UTVONAL=”/mnt/egyebek/videos/From_tv”
          FILE=”${UTVONAL}/${FILE_NAME}/${FILE_NAME}_${TODAY}_${NOW}”
          LOGFILE=”${UTVONAL}/${FILE_NAME}”

          # A régi log-ok letörlése
          rm -f ${LOGFILE}*.log

          TV_OPT=”driver=v4l2:norm=PAL:device=/dev/video0:input=0:quality=0″
          TV_RES=”width=720:height=540″

          MP3=”mp3lame -lameopts cbr:br=128:mode=0″

          CODE1=”lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vratetol=32000:nr=400″ #:aspect=4/3″
          FILTER=”-vf pp=lb,denoise3d=3:4:5″
          CODE2=”-ffourcc XVID”
          XVID1=”${CODE1} ${FILTER} ${CODE2}” # csablak – Ez jó.

          XVID2=”xvid -xvidencopts bitrate=1800:me_quality=5:rc_reaction_delay_factor=1″ # Ez nagy processzor használatot eredményez

          MPEG4=”lavc -lavcopts vcodec=mpeg4:vbitrate=2000:vhq ${FILTER}” # ez kb ugyanazt a minõséget adja, amit az elõzõ

          # A parancs:
          /usr/bin/mencoder tv:// -tv ${TV_OPT}:${TV_RES}:${CHANNEL}
          -oac ${MP3} -ovc ${XVID1}
          -o „${FILE}.avi” 2>/${LOGFILE}_error.log 1>${LOGFILE}_uzenet.log
          -endpos ${HOSSZ}

          # Hang elnémítása
          /usr/bin/aumix -l 0 -l P -i 0

          # A gép leállítása
          #halt -p >/dev/null 2>&1

          Mit kéne elolvasnom?

          #2053462
          pointux
          Felhasználó

            Kérdezze meg hogy melyik adó, milyen hosszú a felvétel, és annak megfelelően állítsa be a frekit, endpos-t.

            – egyszerűbb dolgok: dialog, xdialog, kdialog stb. (szerintem ezekhez ennyi is elég)
            – bonyolultabbak: kommander, pygtk stb. (ha egy ablakon akarod megkérdezni, akkor valami ilyesmi kell; habár ilyesmik vannak a neten pl: kde-apps, freshmeat)

            #2053463
            milfer
            Felhasználó

              Csablak:
              Egy jó párszor nekiálltam a saját felvevő scriptem felhasználó baráttá tételének, de még nem fejeztem be. rolleyes.gif
              Hátha ez segít. A tv néző scriptem a csatornákat így olvassa be a zenity segítségével.

              Code:
              #!/bin/bash
              card=”$1″
              command=”1″

              while ! [ -z „$command” ]; do
              command=`cat /home/feri/.mplayerTV/mplayerTVchannels-zenity  |  zenity –list –title „Tv néző $1 kártyával” –text „Válassz csatornát” –column „Csatornák” –height=600`
              if ! [ -z „$command” ]; then
              case „${card}” in
                leadtek|Leadtek|LEADTEK) mplayerTV-Leadtek -ch=”$command” freq ;;
                pinnacle|Pinnacle|PINNACLE) mplayerTV-Pinnacle -ch=”$command” freq ;;
              esac
              fi
              done

              Persze neked a $card nem kell, nekem két tv kártya van a gépben.

              A csatorák nevei ebben vannak /home/feri/.mplayerTV/mplayerTVchannels-zenity (ez jelenik meg a zenity-ben.)
              Így:

              Code:
              MTV_1
              MTV_2
              Duna_TV
              ATV
              TV2
              RTLKLUB
              Viasat3
              Viva
              Hallmark
              Spectrum
              NationalGeo
              Filmmúzeum
              HelyiTV
              Eurosport
              TCM
              Sportklub
              RTLII
              ARD1
              Minimax
              Discovery
              Belgrád
              HirTV

              A lejátszó scriptnek (mplayerTV-Leadtek -ch=”$command”) fogja átadni a csatorna nevét a $command változóban,

              #2053464
              pointux
              Felhasználó

                Ha már lista, akkor itt egy példa a listára. (Ez dialog, de xdialoggal (gtk) is így meg.)
                Ebben az esetben a listában a név+url-t csatornanév+frekvencia-ra kell cserélni. 🙂

                #2053465
                birno
                Felhasználó

                  Sziasztok!

                  Adott egy egyszerű kis script:

                  Code:
                  #!/bin/sh
                  cd $(dirname „$1”)
                  for i in $(ls *.avi); do
                    mplayer $i
                  done

                  Arra kell, hogy ha több részből áll egy film mindet lejátssza egymás után.
                  Azonban nem tudom hogyan lehetne rávenni, hogy a szóközöket tartalmazó fájlnevet is megegye.
                  Próbálkoztam azzal, hogy „” közé rakom, valahogy így: for i in „$(ls *.avi)”, aminek ez lett az eredménye(mplayer helyett echo-val kísérleteztem):

                  „Karhozat
                  (Damnation-1988)
                  Hungarian
                  Magyar-Bela
                  Tarr.avi”

                  Alapból az ls *.avi ezt adja vissza: Karhozat (Damnation-1988) Hungarian Magyar-Bela Tarr.avi
                  Gondolom arra lenne szükség, hogy ilyen formában kapja meg az mplayer: Karhozat (Damnation-1988) Hungarian Magyar-Bela Tarr.avi, de még nem jöttem rá, hogy ezt hogyan érem el.

                  #2053466
                  milfer
                  Felhasználó
                    birno wrote:
                    Sziasztok!

                    Adott egy egyszerű kis script:

                    Code:
                    #!/bin/sh
                    cd $(dirname „$1”)
                    for i in $(ls *.avi); do
                      mplayer $i
                    done

                    Próbáld így

                    Code:
                    #!/bin/sh
                    cd $(dirname „$1”)
                    for i in *.avi; do
                      mplayer „$i”
                    done
                    #2053467
                    milfer
                    Felhasználó

                      De ez sem rossz. 10.gif

                      Code:
                      #!/bin/sh
                      cd $(dirname „$1”)
                        mplayer *.avi
                      #2053468
                      milfer
                      Felhasználó

                        Vagy így még egyszerűbb. 1.gif

                        Code:
                        #!/bin/sh
                        mplayer „$1″/*.avi
                      10 bejegyzés megtekintése - 281-290 / 438
                      • Be kell jelentkezni a hozzászóláshoz.