Bash script

Kezdőlap Fórumok Programozás Bash script

10 bejegyzés megtekintése - 91-100 / 438
  • Szerző
    Bejegyzés
  • #2053269
    retaliator44
    Felhasználó

      Ez a bash leirás tetszik…
      De mi ez a valami? ”/(‘…’) Ez most egy dolgot akar jelenteni vagy csak lemaradt pár space?

      #2053270
      pointux
      Felhasználó

        „De mi ez a valami? ”/(‘…’) Ez most egy dolgot akar jelenteni vagy csak lemaradt pár space?”

        Pl.:
        „‘akarmi'”, „$USER”

        #2053271
        bruit
        Felhasználó

          Hali

          Egy olyan shell scriptet szeretnék irni ami két szamon végzi el a +,-,*,/ műveleteket.

          Így néz ki:

          #!/bin/bash
          echo $1 $2 $3 = `expr $1 $2 $3`

          Az első paraméter egy szám a második a művelet a harmadik ismét egy szám. A probléma a szorzással van. Méghozzá az, hogy ha második paraméterként a script egy * jelet kap akkor onnantól a könyvtárlistában található könyvtárak neveit adja át paraméterenként.
          Hogyan lehetne ezt kiküszöbölni?

          #2053272
          masterminds
          Felhasználó

            Lehet, hogy meg lehet oldani a * karakter bűvölésével is a dolgot, de itt egy egyszerűbb(?) megoldás rá (x karakterrel kezelve a szorzás).

            #!/bin/bash

            if [ $2 = x ]
            then
            a=`expr $1 * $3`
            echo „$1 $2 $3 = $a”
            else
            b=`expr $1 $2 $3`
            echo „$1 $2 $3 = $b”
            fi

            #2053273
            pointux
            Felhasználó

              Ha nem ragaszkodsz az expr-hez, akkor:
              a) calc.sh

              Code:
              #!/bin/bash
              EXPR_STR=””

              function calc () {
                awk „BEGIN {print $* ;}”
              }

              calc „${EXPR_STR}”

              calc.sh ” 2 * 3 + 3″

              b) calc.sh

              Code:
              #!/bin/bash

              EXPR_STR=””

              while test $# -ne 0; do
                EXPR_STR=”${EXPR_STR} $1″
                shift
              done

              function calc () {
                awk „BEGIN {print $* ;}”
              }

              calc „${EXPR_STR}”

              calc.sh 2 * 3 + 3
              calc.sh 2 „*” 3 + 3
              calc.sh 2 „*” 3 + 3
              calc.sh „2 * 3 + 3”

              #2053274
              bruit
              Felhasználó

                Köszi
                Akkor majd valahogy igy csinálom.  :wink1:

                #2053275
                MyCroft
                Felhasználó

                  Szia bruit!

                  A beadandók elkészítése – elvileg – önálló munka. Így ha az itt látott megoldást küldöd el, azt nyílván nem tudom majd ponttal honorálni.

                  Szerk. (utoljára 🙂 )
                  Módosítottam a feladatkiírást, hogy a *-gal ne legyen gond. Így az általad kitalált megoldás megfelel a feladatnak, ha azt küldöd el, azt természetesen elfogadom.

                  MyCroft

                  #2053276
                  milfer
                  Felhasználó
                    MyCroft wrote:
                    Szia bruit!

                    A beadandók elkészítése – elvileg – önálló munka. Így ha az itt látott megoldást küldöd el, azt nyílván nem tudom majd ponttal honorálni.
                    Viszont, az általad kitalált megoldás majdnem jó. Egyetlen karakter hiányzik belőle és tökéletesen megoldaná a kiírt házit.
                    Az awk-s megoldás amúgy is ágyúval verébre ebben az esetben – ráadásul (még) nem is vettük órán. 🙂

                    Szerk: Jah és a szkriptnek mennie kell (ez benne a pláne) script1 5 * 3 formában

                    MyCroft

                    Vazzeg. Akkor küld már el pm-ben.  🙂
                    Este 10-kor tette fel a kérdést. 01.30-ig sza..kodtam vele. Mindenféle karaktert tettem a csillag elé, mögé, fölé  :poketoungeb:, de csak a mappa bejegyzések maradtak a helyén.  🙂

                    #2053277
                    MyCroft
                    Felhasználó

                      Na jó, jogos, az egy karaktert visszavonom  🙂
                      Trükközgetni lehetne, pl ilyesmivel, hogy
                      X=echo ${2:0:1}
                      És megnézed, hogy az $X egyenlő-e a +,-,/ jelekkel, ha nem, akkor (valszeg) * volt.
                      De jó lesz az script1 3 * 4 formában is 🙂

                      Szerk:
                      sőt.. ha nincs kint levédve a *, akkor még azzal is gond van, hogy a második szám, amit ($3)-nak várnánk, az általában nem $3 lesz, hanem „hátrébb” csúszik.
                      Jobban belegondolva, hülyeség volt amit az előző hsz-ben írtam, sorry  :blush:

                      #2053278
                      bruit
                      Felhasználó

                        Jajj, de csúnyán bebuktam  :blink: :closedeyes:
                        De haudtam volna hogy önállóan kell…  🙂
                        (mellesleg valahogy ugysem akar jó lenni ha kint levédem a *ot)

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