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.
Sh vs. ash vs. bash
Anonyymi
18426
0Äänestä
Muut lukivat myös
Ketjusta on poistettu 2 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- Tekisin SINUT ONNELLISEKSI NAINENMutta EHKÄ onni EI OLE mitä HALUAT.
- Mitähän sitä...Tsuumailin vähän muuallekin välillä ja törmäsin ajatuksiin, että miehen tulee suojella naista kaikelta pahalta. Mutta yhtään ei oltu eritelty mitä se kaikki paha on, jolta suojella. Jotenpas kysynkin kyselyikäni kyselyn…
- Hävettävä käytösHävettääkö sinua jokin?
- Kuvittelin että oltiin läheisempiäYstäviä, tavallaan. Mutta ei sitten oltukaan sun näkökulmasta. Pettymys, mutta totun kyllä asiaan vähitellen.
- Myönnä poisLoukkaannuit mulle silloin aikoinaan? Ne viestit, väärinymmärrykset, kaikki. Miehelle
- Omapahan on vikasi jos jää loppuelämän romanssi välistä kun haluat olla itsepäinen jääräJa tuomita, jotain mitä et kykene ymmärtämään, antamatta edes mahdollisuutta, vaikka olen tehnyt parhaani elämäni edistämiseksi ja oikeasti yrittänyt!! Itken tyynyyn... tuskin edes yhtä vuotta ilman itsetuhoisia ajatuks…
- Kuka murtautu illalla kipparilleJotaki hampuusia kannettu ambulanssiin ja kipparin iso ikkuna palasina..Mitä tapahtunu??
- Susilauma KorkatissaKahdeksan suden lauma käynyt repimässä Hankosen Antin lampaat Korkatissa torstain vastaisena yönä. Mahtavaa luonnon Monimuotoisuutta. ViherVasemmisto ja Greenpeace kiittää.
- Tule sunnuntaina juna-asemalleKello kymmenen aikaan, tavataan siellä. Ainoa ja viimeinen tilaisuus tavata. Jos et tule niin et enää koskaan näe minua. En halua kirjoitella mitään, en halua kuulla selityksiä. Haluan tavata.
- Onko se sinun mielestäsiminun syyni, että tilanne on se mikä se on? En tiedä. Toisaalta, en pysty uskomaan että millään minun tekemisilläni olisi ollut juurikaan merkitystä.
- Eiköhän tämä ole jo tässäParivuotta hukkaan heitetty.
- Mitä enää haluat??Tätä on kestänyt liian kauan!
- Perjantai jälleen bläähViikonloppuna sataa, mitä meinaatte tehdä? Pian on syyslomakin, suunnitelmia tähän säähän? Mulla olis pihahommaa vielä, mutta en helvetissä mene sateeseen kastumaan. Kasvoi vähän kyr*äkin otsaan kelin takia. Eikö nyt vo…
- kunnioitan tahtoasiEn tule sinua enää lähestymään.
- Haluan sanoa sulle miesEttä pysytään molemmat pois täältä palstalta. Maltetaan olla pois, koska olosi on silloin parempi. Minä en kirjoittele enää, joten voit unohtaa tämän. Ottaisitko minuun yhteyttä muuta kautta, jos haluat. Olisin onnessan…
- Onko tarkoitus ottaa ihmisten eläkevarat valtion käyttöön?Vai mistä tässä eläkeiän nostossa hamaan tappiin on kyse? Eihän moni sitten saisi käytännössä eläkettä koskaan vaikka eläkemaksuja koko elämänsä olisi maksellutkin.
- Perjantain lukupaketti nyt kirjastossaMuhkea ja hitsausliekkiäkin kuumempi jallulehti nyt luettavissa kirjastossa! Lämpimästi tervetuloa!
- Oot melko .ufo :) ,,,,,,,,,,,,,,,,,,,
- Alette alas tulla sieltäMissä oletkin, täällä hidastuu koko palstan väki ilman sinua. Tarinaa ei narinaa. 🍃😆 https://youtu.be/4W4DIgbBbsk?is=Vdbj3wnuTGMchXVC
- Ei tuu mitäänNyt jo taivaskin itkee tätä tilannetta 💔😢
Vastaukset 18
Vanhimmat
Linuks on kovin vaikeaselkoinen.
Osaamattomalle kaikki on vaikeaa.
Sulle kaikki on vaikeaselkoista! Muille linuxit on helppokäyttöisiä.
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.
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ä.
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
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.
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.
Mistään mitään ymmärtämätön, sekoittaa taas asioita, tyhmyyttään, kuten tavallista.
Väärin kirjoitettu skripti. Sen alussa olisi pitänyt olla ensimmäinen rivi
#!/bin/bash
Ei tuo auta mitään jos ajaa sh:llä. Skripiti pitää ajaa bashilla, tai sitten nostaa lippu x.
("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).
Melkoisia sellistejä olette. Kyseessä on siis komentotulkki eikä vankilakoppi tai soitin.
Selli != shell.
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.