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
- Dodii. Kuvailekaivattusi ulkonäköä :)
- On aika ottaa sinuun etäisyyttäKohtalo tuli apuun ja järjesti sille puitteet. Ei sillä että olisi tyytyväinen, päinvastoin.
- Yritetäänkö vielä kerran?Sussa on paljon hyvää, mutta paljon myös piirteitä jonka kanssa en voi elää. Annoin mahdollisuuden sössit sen. Mutta silti oot ajatuksissa haluaisin laittaa sulle suoraan viestiä mutta en uskalla.
- Voi kun saisin selvänMitä sinä oikein ajattelet ja ootko oikeesti täällä niinku kuvittelen. Eilen oli niin vahva tunne kun ensimmäisen viestikeskustelun avasin, että se olit sinä. Meen taas saunaan enkä tiedä, ehkä tulen ikävässäni vielä tä…
- Mikä on kaikkenViehättävintä kaivatussasi?
- Trump teki dieseldiilin Putinin kanssaYhdysvaltain presidentti Donald Trump kertoo sosiaalisessa mediassa sopineensa Vladimir Putinin kanssa mittavista dieselpolttoaineen toimituksista Yhdysvaltain ja maailman markkinoille. Olen juuri saanut päätökseen erit…
- Joskus joku ihminen jää sydämeen asumaan, vaikkei hänelle olisi koskaan uskaltanut kertoa sitä.Sinä olet jäänyt ajatuksiini tavalla, jota on vaikea selittää. Olemme kohdanneet siellä, missä olen käynyt asiakkaana, etkä ehkä itse tiedä, miten paljon lämpöä olet tuonut päiviini. Joskus pelkkä hymy tai pieni kohtaam…
- Kaipaan sinua miesToivo elää, että näemme vielä. Kadun, etten pyytänyt sun puhelinnumeroa.
- Et näytä vanhalta,vaik ootkin iäkäs!Ootko ottanut botoxia?
- Jos et enää uskallalaittaa viestiä, enkä itsekään uskalla, ei ole kuin yksi vaihtoehto
- Haluaisin tutustua miesKun tapasimme paikka ei ollut paras mahdollinen. Luulin, että kaipaan toista ihmistä elämääni enkä huomioinut sinua. Päästin tilaisuuden menemään. Kaipasin koko ajan jotain mikä ei ollut todellista ja sinä olit siinä ko…
- No miltä näytänKu et saa silmiä irti🫠
- Ei olis pitänyt tykästyä siihen mieheen...Yhä vaan kaipaan...
- Laita se viestiTiedät että ollaan linjoilla nyt molemmat.
- Älkää ihmiset hyväksykö Antin natsismia!Kyllä se on ihan yhtä hirvittävä ideologia, vaikka sitä demari harjottaiskin.
- Mikä on horoskooppisi?Mikä on naisen?
- Matkailu avartaa.Kyllä. Niin klisee kuin se onkin, niin onhan meillä Suomessa hienoja asioita. - Lentokentällä on siistiä. - Hanasta voi huoletta juoda vettä. - Hotelleissa ei pörrää monijalkaisia kavereita. - Infra on toimiva. - Kaljat…
- Mikä onkaanKauneinta kaivatussasi?
- Et edes yrittäHuomaan että et edes yritä parantaa meidän välejä mitenkään vaan syyllistät ja epäilet ja haukut ja kaikkea muuta
- En sua torjuis!Silloin joskus oli pakko...
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.