Sh vs. ash vs. bash

Anonyymi

Miksiköhän noita shellejä on useampaa sorttia? Tänään meni vähän aikaa painiessa tyhmän ongelman parissa, jonka syyksi selvisi ettei sh tukenut skriptissä ollutta bash komennon toimintoa. Yleensähän skrpitit ajetaan sh-komennolla, jos x-lippua ei jaksa nostaa ylös. Tuo piti sitten ajaa bash-komennolla.

18

426

    Vastaukset 18

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Linuks on kovin vaikeaselkoinen.

      • Anonyymi

        Osaamattomalle kaikki on vaikeaa.


      • Anonyymi

        Sulle kaikki on vaikeaselkoista! Muille linuxit on helppokäyttöisiä.


    • Anonyymi

      Ja kyse oli read-komennon s-toiminnosta, joka ei tulosta merkkejä niitä kirjoittaessa.

      read -sp "Syötä salasana: " salasana

      Tuo ei toimi siis sh:ssa.

    • Anonyymi

      Historialliset syyt. Itse altistuin jo 80 - luvulla csh ja tcsh shellillä toimiville koneille ja totuin niihin. Tämä siis oli unix ja bsd aikaa ennen linuxin tuloa.

      https://en.wikipedia.org/wiki/Unix_shell

      Kaikesta huolimatta sh on säilynyt skriptien oletusshellinä. Se on tavallaan pienin yhteinen tekijä jota on ollut syytä käyttää kun halutaan varmistaa että skriptin toimivuus ei riipu kyseisen koneen jostakin erityspiirteestä.

      • Anonyymi

        No johan on shellejä! Olen vähän kuutamolla näistä Linux-jutuista, mutta vähitellen sitä oppii epäonnistumisten kauttakin.


      • Anonyymi
        Anonyymi kirjoitti:

        No johan on shellejä! Olen vähän kuutamolla näistä Linux-jutuista, mutta vähitellen sitä oppii epäonnistumisten kauttakin.

        Ainakin joissakin jakeluissa /usr/bin/sh on linkki bash:iin.
        /usr/bin/sh -> bash


      • Anonyymi
        Anonyymi kirjoitti:

        Ainakin joissakin jakeluissa /usr/bin/sh on linkki bash:iin.
        /usr/bin/sh -> bash

        Ubuntussa versiosta 6.10 lähtien on /bin/sh ollut symlinkattu dashiin. Useimmissa muissa jakeluissa /bin/sh on symlinkattu bashiin. Kannattaa huomata että dash on paljon suppeampi kuin bash.


      • Anonyymi
        Anonyymi kirjoitti:

        Ubuntussa versiosta 6.10 lähtien on /bin/sh ollut symlinkattu dashiin. Useimmissa muissa jakeluissa /bin/sh on symlinkattu bashiin. Kannattaa huomata että dash on paljon suppeampi kuin bash.

        Näin ne Ubuntun heikkoudet paljastuu.


      • Anonyymi
        Anonyymi kirjoitti:

        Näin ne Ubuntun heikkoudet paljastuu.

        Mitkä ihmeen heikkoudet? Windowsissahan niitä heikkouksia on eikä Ubuntussa!


    • Koska se SH on se standardi.

      Sitten ihmiset haluavat lisäominaisuuksia ja niitä varten on sitten shellejä missä on ne lisäominaisuudet. Ne vaan ei toimi joka paikassa.

      • Anonyymi

        Mistään mitään ymmärtämätön, sekoittaa taas asioita, tyhmyyttään, kuten tavallista.


    • Anonyymi

      Väärin kirjoitettu skripti. Sen alussa olisi pitänyt olla ensimmäinen rivi

      #!/bin/bash

      • Anonyymi

        Ei tuo auta mitään jos ajaa sh:llä. Skripiti pitää ajaa bashilla, tai sitten nostaa lippu x.


      • Anonyymi

        ("Väärin kirjoitettu skripti.")

        KYLLÄ, näin on. Käsittelyohje ytimelle täytyy olla aina, itse tulkki, ei käsittele rivejä jotka alkaa ( #! ). Ja erittäin tärkeäksi se muodostuu kun skriptille annetaan suoritusoikeudet (x).


    • Anonyymi

      Melkoisia sellistejä olette. Kyseessä on siis komentotulkki eikä vankilakoppi tai soitin.

      • Anonyymi

        Selli != shell.


    • Anonyymi

      Linux on erittäin joustava noiden shell:ien kanssa. Useassa skriptauskielessä on itse asiassa helppo toteuttaa toiminnallisuus, jolla mahdollistetaan kielen ajaminen komentoriviltä "käyttöliittymänä" koneelle. Alunperin se on kai mennyt niin, että terminaali-emulaation päällä on haluttu ajaa jotain vähän helpompikäyttöistä. Terminaali taas on konsolilla ajettava ohjelma, jolla ollaan yhteydessä mainframe:een eli keskustietokoneeseen. Eli yhdellä koneella voinut olla useampi sata käyttäjää yhtäaikaa, esim. telnetin tai myöhemmin ssh:n avulla.
      Seuraavat ainakin tiedän, mitä ei vielä ole mainittu: tclsh, dash, fish. Se, mikä tulee loginissa käyttöön, asetetaan ympäristömuuttujan esim. SHELL="/bin/bash" avulla. Sitten on muuttuja "SHLVL=1", joka kertoo, että kyseessä on login shell. Jos tuo arvo on suurempi kuin yksi, on kyseessä shellistä käynnistetty shelli, eli joku toinen skripti vaikkapa.

    Ketjusta on poistettu 2 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Gallup: Kansalaiset eivät usko velkajarruun

      Puolet suomalaisista ei usko velkajarrun vaatimien sopeutusten toteutuvan, kertoo Iro Researchin kyselytutkimus. Kokoom
      Maailman menoa
      70
      1103
    2. Ethän mies vielä

      luovu meistä? Haluaisin jo sun syliin.
      Ikävä
      64
      872
    3. Sinulle nainen

      En ehkä koskaan osannut sanoa tätä oikein. Minun vaikeuteni luottaa liittyi ennen kaikkea menettämisen pelkoon. Siihen
      Ikävä
      66
      856
    4. Haaveilen edelleen

      Sinusta aika ajoin
      Ikävä
      53
      848
    5. Mä oon kallistumassa

      Rikosilmoitukseen!
      Suhteet
      188
      848
    6. Hei rakkaani.

      Kohtaaminen lähestyy. Miten teemme sen? Kumpi ottaa yhteyttä vai törmäämmekö jossain sattumalta? Tuleva vaimosi
      Ikävä
      70
      715
    7. Ethän voinut nainen tietää, että rikot rikotun

      Omaa elämää taas mietin aamuyön tunteina. En vieläkään löytänyt muistin sokkeloista ainuttakaan onnen hetkeä. Kaipuu on
      Ikävä
      72
      712
    8. Tiedätkö sitä

      Että sinun äänesi on ihanan pehmeä
      Ikävä
      42
      706
    9. Martsusta tuli leuhka

      Ja ylimielinen. Hän ei nosta persettäkään ilmaseksi . Luulempa et nämä ei tee hyvää hyvinvointivalmennuksille.... Nannal
      Kotimaiset julkkisjuorut
      206
      690
    10. Kuisla Group Oy jättänyt yrityssaneeraushakemuksen

      Samalla yrityssaneeraukseen on hakeutunut Kuisla henkilökohtaisesti ja Seinäjoen Motelli Oy, joka omistaa Sorsanpesän ki
      Seinäjoki
      28
      634
    11. Kiulu myynnissä!

      Kiulu hakee taas uutta yrittäjää. https://www.yritysporssi.fi/etela-pohjanmaa-lansi-suomi-finland/myytavat/yritykset/ma
      Ähtäri
      26
      578
    12. Uskallanko laittaa sulle viestiä?

      Se viesti on tossa valmiina ja lähettämistä vaille valmis. Kun ei kauhee sti tunneta niin eipä sillä olisi niin väliä. S
      Ikävä
      51
      558
    13. On paha olla

      Kun olen käyttäytynyt aiemmin kaivattua kohtaan kuin joku narsisti.
      Ikävä
      42
      548
    14. Tulisiko naisille asettaa korkeammat eläkemaksut

      Tämä tuli mieleeni kun luin aamun lööppejä. Japanissa alkaa olla "uutta nuorisoa" ihan urakalla, ikä alkaa sadan jälkeen
      Sinkut
      169
      474
    15. Et pysty peittämään minulta

      Sinä olet hyvä peittämään asioita niin halutessasi. Pystyt pitkiäkin aikoja salaamaan juttuja. Juuri mietin tuossa, olet
      Ikävä
      47
      474
    16. Mikä tekee kaivatustasi

      Haluttavan?
      Ikävä
      18
      468
    17. Mitä oikein tapahtui? Maajussi-Jetta sai tylyt pakit - Sulhoehdokas selittää: "Ei lentänyt kipinät"

      Maajussille morsian -sarjassa etsitään rakkautta ja rinnalle kumppania. Yksi maajusseista on Jetta - liikunnallinen ja
      Maajussille morsian
      12
      427
    18. Makeinen, asiaa sinulle

      Minua korkeampien voimien kehotuksesta sinua pyydetään avaamaan jokin yhteys asioista keskustelemisen takia kanssani. Il
      Ikävä
      28
      403
    19. Huumekauppaako

      ”Huumekauppa johti rajuun väkivaltaan Kokkolassa – Kolme nuorta otettu kiinni, yksi epäillyistä alaikäinen”
      Kokkola
      9
      384
    20. J-mies!

      Meidän "suhde" (suhde mitä ei oikeastaan edes ole) on kielletty ja vaikea. En tiedä mihin uskot, mutta olet irl itsekin
      Ikävä
      32
      382
    Aihe