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. Mitä on mietteissäsi

      Tänään?
      Ikävä
      67
      778
    2. En olis uskonu

      et kuulut tollaseen porukkaan
      Ikävä
      113
      742
    3. Mikä on hulluinta?

      Mitä ikäväsi kohde on tehnyt?
      Ikävä
      37
      706
    4. Meiltä löytyy kyllä älliä

      Vai mitä oot mieltä...
      Ikävä
      130
      657
    5. En haluaisi sanoa tätä

      Mutta olet sokea sille, mitä sinulla jo on! Jos minä olisin sinä, pyrkisin tekemään kaikkeni kohentaakseni nykyistä pari
      Ikävä
      40
      599
    6. Et taida olla ihan varma

      Päätöksestäsi?
      Ikävä
      67
      589
    7. Vasemmiston aloite

      Pyhäjärvellä, ihan hyvä aloite. Toteutus ja puhdistus pitäisi alkaa ihan omasta pesästä. Näkeehän tuon sokeakin mitä ja
      Pyhäjärvi
      58
      483
    8. Koska Sofia kertoo totuuden, että ovat eroneet miljonääri miehen kanssa?

      Eikö olisi hänelle itselleen helpotus, kun voisi kertoa totuuden. Miksi salata asiaa ja pitkittää sitä harmaan tulevaisu
      Kotimaiset julkkisjuorut
      142
      469
    9. Onko suhtautuminen kaivattusi

      Fyysiseen vetovoimaan muuttunut? Jos, mihin suuntaan? Tunnetko enemmän vai vähemmän vetoa häneen fyysisesti kuin silloin
      Ikävä
      35
      468
    10. Miltä tuntuu

      olla erossa kaivatustasi?
      Ikävä
      26
      465
    11. Miksi vihainen

      Miksi olet vihainen mulle?
      Ikävä
      41
      432
    12. Tunnistan mun rakkaan

      Kirjoituksen heti kun se on täällä. Mä vaan tiedän sen ja tunnen 🤗
      Ikävä
      68
      420
    13. Näyttää siltä ettet edes sinä.

      Kukaan ei uskalla kohdata aitoa ja syvää sielun rakkautta. Hyvin harvat vain. Ihmisten on turha tavoitella sitä oikeaa
      Ikävä
      30
      408
    14. Maajussille morsian: Farmiviikon voittajat ja häviäjät - Itkua ja pettymystä ei salattu

      Maajussille morsian -suosikkisarjassa farmiviikolla selviää, onko ilmassa "sitä jotakin". Rakkauden etsintä on täynnä i
      Maajussille morsian
      0
      405
    15. Hei, alettaisko oleen yhdessä?

      Miltä tuntuisi jos joku ihminen josta tykkäät sanoisi haluavansa yhteen asumaan? Ajattelisitko menettäväsi vapauden, pys
      Sinkut
      65
      388
    16. Jos olen aiheuttanut pahaa, pyydän anteeksi

      Jos olen omalla kirjoittelullani aiheuttanut täällä jollekin pahaa mieltä tai sotkenut asioita, niin pyydän sitä anteeks
      Ikävä
      58
      387
    17. Miten oletkin noin

      osaamaton kaikin tavoin :)
      Ikävä
      35
      383
    18. Kun asiat pitkittyy niin ne mutkistuu

      Mutkaista jo on, ei nämä enää selviä.
      Ikävä
      29
      374
    19. Miks tämä jatkuu näin pitkään?

      Ootko rakastunut?
      Ikävä
      23
      367
    20. Muistelen lämmöllä

      Se oli vaikein päätös, jonka olen joutunut tekemään. En pidä valehtelusta, mutta näin sait päätöksen asioille. Rakasti
      Ikävä
      27
      364
    Aihe