Tiedosto päätteestä *.bash

Anonyymi

Haluan käyttää BASH komentotulkille suunnatuissa ohjelmissani tiedosto päätettä *.bash, mutta en haluaisi kuitenkaan kirjoittaa komentokehotteessa tuota päätettä. Tuossa alla esimerkkinä lotto.bash skripti, jonka halua ajaa kirjoittamalla vain (lotto), miten minun tulisi menetellä jotta tämä onnistuisi.

#!/bin/bash
# Anna suoritusoikeudet: chmod +x lotto.bash
# Aja ohjelma: lotto.bash

echo "Viikon `date +%V` oikeat numerot"
echo $(shuf -n 7 -i 1-40 | sort -n)

36

276

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Miksi sitten scriptin nimi ei voi olla lotto?

      • Anonyymi

        Ajattelin että nämä Bach-komentotulkissa suoritettavat erottuisivat muissa komentotulkeissa ajettavissa olevista.

        Esimerkki:
        — lotto.bash
        — lotto.sh
        — lotto.fish

        Tämä olisi siistin näköinen jo tiedostohallinnassa selatessa.


      • Anonyymi

        Miksi ihmeessa kukaan tekee " .bash" Tiedostoja!
        Miksi tehdä hankalasti ???


      • Anonyymi
        Anonyymi kirjoitti:

        Ajattelin että nämä Bach-komentotulkissa suoritettavat erottuisivat muissa komentotulkeissa ajettavissa olevista.

        Esimerkki:
        — lotto.bash
        — lotto.sh
        — lotto.fish

        Tämä olisi siistin näköinen jo tiedostohallinnassa selatessa.

        Etkö muista että windowsissa hoidetaan hommat ,bat tiedostoilla!


      • Anonyymi
        Anonyymi kirjoitti:

        Etkö muista että windowsissa hoidetaan hommat ,bat tiedostoilla!

        Jo dos ajoista lähtien!


    • Anonyymi

      Ehdotin aliasta mutta sensuuri poisti sen. Siinä on varmaan jotain rasistista.

      • Anonyymi

        On tämäkin yksi tietotekniikan ....a sivusto, mahdotonta ketään jelpata, mitään muuta kuin kansalaisten rääkkäämistä. Yllytetään kirjota, kirjota, osallistu keskusteluun ja kun sitten osallistuu, niin viestit poistetaan, kun on taitamattomat tumpelot moderoimassa.


      • Anonyymi
        Anonyymi kirjoitti:

        On tämäkin yksi tietotekniikan ....a sivusto, mahdotonta ketään jelpata, mitään muuta kuin kansalaisten rääkkäämistä. Yllytetään kirjota, kirjota, osallistu keskusteluun ja kun sitten osallistuu, niin viestit poistetaan, kun on taitamattomat tumpelot moderoimassa.

        Se on totta! Medet ei factoja tarkastele!


    • Anonyymi

      Kyllä scriptsin eka rivi määrittää mikä komentotulkki sen ajaa?
      Joten?

      Ja et halua kirjoittaa "komentokehoitteeseen" ? consoliin vaikko näihin emulaattoreihin? jos "emulaattoreihin" niin ainahan niiden koodii voi muunnella?
      Jättää esimerkiksi pisteen (päätteen) jälkeisen osan huomioimatta

      • Anonyymi

        Nimenomaan. Tiedoston tyypin saa selville komennolla 'file'
        esim. jos eka rivi on:
        script1:
        #! /bin/sh
        ...
        => script1.sh: POSIX shell script, ASCII text executable
        script2:
        #! /bin/bash
        ...
        => script2.sh: Bourne-Again shell script, ASCII text executable

        Oikea tapa on siis nimetä skripti haluamakseen. Sen tyypin kyllä saa selville!


    • Anonyymi

      Onnistuiskohan .bashrc:hen kyhäämään jonkun virhetarkastelufunktion, mikä yrittäisi ajaa vaikka ensin "bash tiedosto.bash", jos pelkkä "tiedosto" palauttaisi virheen, ettei ole olemassa. Sen jäkeen voisi kokeilla "ash tiedosto.ash", sitten "sh tiedosto.sh" jne.

      • Anonyymi

        Voihan siellä ajaa mitä vaan. Virheen sijaan saattaisi olla kuitenkin siistimpi tapa testata onko tiedosto olemassa, tyyliin:

        TIEDOSTO="file"
        if [ -z $TIEDOSTO.sh ]; then
          sh $TIEDOSTO.sh
        elif -[ z $TIEDOSTO.bash ]; then
          bash $TIEDOSTO.bash
        fi

        Jne.


      • Anonyymi
        Anonyymi kirjoitti:

        Voihan siellä ajaa mitä vaan. Virheen sijaan saattaisi olla kuitenkin siistimpi tapa testata onko tiedosto olemassa, tyyliin:

        TIEDOSTO="file"
        if [ -z $TIEDOSTO.sh ]; then
          sh $TIEDOSTO.sh
        elif -[ z $TIEDOSTO.bash ]; then
          bash $TIEDOSTO.bash
        fi

        Jne.

        Tuon jossittelun luulisi olevan turhaa, koska ydin antaa sen ensimmäisen rivin perusteella oikean tulkin käsiteltäväksi.


      • Anonyymi
        Anonyymi kirjoitti:

        Tuon jossittelun luulisi olevan turhaa, koska ydin antaa sen ensimmäisen rivin perusteella oikean tulkin käsiteltäväksi.

        Skriptihän itsessään toimii toki sen(kin) perusteella, mutta koska tiedostot ovat aloittajan skenaariossa eri nimisiä ja erilaisia, niin jossain vaiheessa pitää tehdä logiikkaohjaus mikä skripti ajetaan.


      • Anonyymi
        Anonyymi kirjoitti:

        Skriptihän itsessään toimii toki sen(kin) perusteella, mutta koska tiedostot ovat aloittajan skenaariossa eri nimisiä ja erilaisia, niin jossain vaiheessa pitää tehdä logiikkaohjaus mikä skripti ajetaan.

        Ja tiedoston olemassa oleminen testataan if [ -f tiedosto ]. Tuo -z on muuttujan testaamista varten.


      • Anonyymi
        Anonyymi kirjoitti:

        Skriptihän itsessään toimii toki sen(kin) perusteella, mutta koska tiedostot ovat aloittajan skenaariossa eri nimisiä ja erilaisia, niin jossain vaiheessa pitää tehdä logiikkaohjaus mikä skripti ajetaan.

        Jos haluaa ajaa tiedostoja ilman päätettä, on siihen varattu aliakset ja symboliset linkit.


      • Anonyymi
        Anonyymi kirjoitti:

        Jos haluaa ajaa tiedostoja ilman päätettä, on siihen varattu aliakset ja symboliset linkit.

        Niin Miksi ihmeessa kukaan tekee " .bash" Tiedostoja!
        Miksi tehdä hankalasti ???


      • Anonyymi
        Anonyymi kirjoitti:

        Voihan siellä ajaa mitä vaan. Virheen sijaan saattaisi olla kuitenkin siistimpi tapa testata onko tiedosto olemassa, tyyliin:

        TIEDOSTO="file"
        if [ -z $TIEDOSTO.sh ]; then
          sh $TIEDOSTO.sh
        elif -[ z $TIEDOSTO.bash ]; then
          bash $TIEDOSTO.bash
        fi

        Jne.

        Vaihdoit sitten Linuxiin!


      • Anonyymi
        Anonyymi kirjoitti:

        Niin Miksi ihmeessa kukaan tekee " .bash" Tiedostoja!
        Miksi tehdä hankalasti ???

        Maailmassa monta on ihmeellistä asiaa, se hämmästyttää, kummastuttaa pientä kulkijaa.


    • Anonyymi

      Eli teet aliaksen skriptiin, jossa on if-lausekkeet tarkastamassa millä päätteellä kyseinen skripti löytyy, jonka jälkeen se ajetaan halutulla tulkilla.

    • Anonyymi

      Py-päätteiset Pyyttoniskripitit ajetaan sitten Pyyttonilla. Huomioida pitää, että 2 ja 3 versiot eivät ole yhteensopivia keskenään.

      • Anonyymi

        Ydin ohjaa, tiedoston ensimmäisen rivin perusteella oikealle tulkille, sinun itsesi ei siitä tarvitse huolehtia.


      • Anonyymi

        Python versiota 2.x ei oletusarvoisesti järjestelmään enää kuulu.


      • Anonyymi
        Anonyymi kirjoitti:

        Ydin ohjaa, tiedoston ensimmäisen rivin perusteella oikealle tulkille, sinun itsesi ei siitä tarvitse huolehtia.

        Ei ohjaa yhtään mitään, koska ensin pitää päätellä mikä skripti ajetaan.


      • Anonyymi
        Anonyymi kirjoitti:

        Ei ohjaa yhtään mitään, koska ensin pitää päätellä mikä skripti ajetaan.

        Mitä tarkoitat?

        Käyttäjä käynnistää esimerkiksi "lotto" komennolla, Bash-, Python-, Perl- tai jonkun muun scriptin jonka ensimmäinen rivi ("shebang line") kertoo ytimelle, mille tulkille sen kuuluu ohjata kyseinen scripti suoritettavaksi, näin menetellään kaikkien tulkattavien kielten suhteen.


      • Anonyymi
        Anonyymi kirjoitti:

        Mitä tarkoitat?

        Käyttäjä käynnistää esimerkiksi "lotto" komennolla, Bash-, Python-, Perl- tai jonkun muun scriptin jonka ensimmäinen rivi ("shebang line") kertoo ytimelle, mille tulkille sen kuuluu ohjata kyseinen scripti suoritettavaksi, näin menetellään kaikkien tulkattavien kielten suhteen.

        jatketaanpa, ellei scripti sisällä ("shebang line") riviä, tulisi käyttäjän suoraan ohjata scripti oikealle tulkille, vaikka seuraavasti:

        python esimerkki.py


      • Anonyymi
        Anonyymi kirjoitti:

        Mitä tarkoitat?

        Käyttäjä käynnistää esimerkiksi "lotto" komennolla, Bash-, Python-, Perl- tai jonkun muun scriptin jonka ensimmäinen rivi ("shebang line") kertoo ytimelle, mille tulkille sen kuuluu ohjata kyseinen scripti suoritettavaksi, näin menetellään kaikkien tulkattavien kielten suhteen.

        jatketaanpa, no mikä ihme se ("shebang line") rivi sitten on? No se tiedoston ensimmäinen rivi joka alkaa risuaidalla (#) ja voi näyttää:

        Bash tulkilla tältä:
        #!/usr/bin/env bash

        Python tulkilla tältä:
        #!/usr/bin/env python

        Perl tulkilla tältä:
        #!/usr/sbin/perl


      • Anonyymi
        Anonyymi kirjoitti:

        Mitä tarkoitat?

        Käyttäjä käynnistää esimerkiksi "lotto" komennolla, Bash-, Python-, Perl- tai jonkun muun scriptin jonka ensimmäinen rivi ("shebang line") kertoo ytimelle, mille tulkille sen kuuluu ohjata kyseinen scripti suoritettavaksi, näin menetellään kaikkien tulkattavien kielten suhteen.

        jatketaanpa, mikäli scripti toimii vain modullin tapaan, joka kutsutaan osaksi pääohjelmaa, ei tätä riviä tarvita, koska se käytännössä liitetään osaksi pääohjelmaa sille kohtaa, jossa sitä kutsutaan ja vaikka rivi olisikin olemassa ei tulkki lue rivejä jotka alkaa risuaidalla, joten sitä riviä noteraa yksin omaan ydin.


      • Anonyymi
        Anonyymi kirjoitti:

        Mitä tarkoitat?

        Käyttäjä käynnistää esimerkiksi "lotto" komennolla, Bash-, Python-, Perl- tai jonkun muun scriptin jonka ensimmäinen rivi ("shebang line") kertoo ytimelle, mille tulkille sen kuuluu ohjata kyseinen scripti suoritettavaksi, näin menetellään kaikkien tulkattavien kielten suhteen.

        jatketaanpa, oletetaan että joku aloittelija ajaa "lotto" komennolla scriptin, ohjaamatta sitä suoraan ja kirjoittamatta tätä ("shebang line") riviä. No ei ydin ole hätää kärsimässä silloinkaan, sen on vain nyt scriptin komennoista pääteltävä mikä tulkki komennot kykenee suorittamaan, mutta eihän asiansa osaava tälläistä virhettä tee.


      • Anonyymi
        Anonyymi kirjoitti:

        Mitä tarkoitat?

        Käyttäjä käynnistää esimerkiksi "lotto" komennolla, Bash-, Python-, Perl- tai jonkun muun scriptin jonka ensimmäinen rivi ("shebang line") kertoo ytimelle, mille tulkille sen kuuluu ohjata kyseinen scripti suoritettavaksi, näin menetellään kaikkien tulkattavien kielten suhteen.

        Käynnistyyhän se, jos alias on tehty olemassa olevaan skriptiin.

        Vaan jos ei ole.

        Silloin pitää alias ohjasta skriptiin, joka käy if-lauseilla läpi löytyykö kyseisen aliaksen alla "olevia" (tai haettuja) skriptejä, oli ne sitten mitä kieltä tahansa.

        Shebang ei ole tässä se pointti, vaan se mikä skripti ajetaan.


      • Anonyymi
        Anonyymi kirjoitti:

        Mitä tarkoitat?

        Käyttäjä käynnistää esimerkiksi "lotto" komennolla, Bash-, Python-, Perl- tai jonkun muun scriptin jonka ensimmäinen rivi ("shebang line") kertoo ytimelle, mille tulkille sen kuuluu ohjata kyseinen scripti suoritettavaksi, näin menetellään kaikkien tulkattavien kielten suhteen.

        jatketaanpa, tämä ("shebang line") rivin olemassa olo auttaa ydintä, mutta myös muita koodaajia jotka yrittävät ratkaista kuinka kirjoittamasi scripti tulisi suorittaa, ja varsinkin silloin kun törmätään ongelmiin scriptiä ajettaessa.


      • Anonyymi
        Anonyymi kirjoitti:

        Käynnistyyhän se, jos alias on tehty olemassa olevaan skriptiin.

        Vaan jos ei ole.

        Silloin pitää alias ohjasta skriptiin, joka käy if-lauseilla läpi löytyykö kyseisen aliaksen alla "olevia" (tai haettuja) skriptejä, oli ne sitten mitä kieltä tahansa.

        Shebang ei ole tässä se pointti, vaan se mikä skripti ajetaan.

        ("Käynnistyyhän se, jos alias on tehty olemassa olevaan skriptiin.

        Vaan jos ei ole.

        Silloin pitää alias ohjasta skriptiin, joka käy if-lauseilla läpi löytyykö kyseisen aliaksen alla "olevia" (tai haettuja) skriptejä, oli ne sitten mitä kieltä tahansa.")

        Vaikuttaa siltä tuossa olisi paikallaan symbolinen linkki, eikä if..then jossittelu, joka ei tulisi toimimaan virhettä testaavan set -e lipun kanssa.


      • Anonyymi
        Anonyymi kirjoitti:

        ("Käynnistyyhän se, jos alias on tehty olemassa olevaan skriptiin.

        Vaan jos ei ole.

        Silloin pitää alias ohjasta skriptiin, joka käy if-lauseilla läpi löytyykö kyseisen aliaksen alla "olevia" (tai haettuja) skriptejä, oli ne sitten mitä kieltä tahansa.")

        Vaikuttaa siltä tuossa olisi paikallaan symbolinen linkki, eikä if..then jossittelu, joka ei tulisi toimimaan virhettä testaavan set -e lipun kanssa.

        Linkki pitää tehdä aina erikseen johonkin tiedostoon.

        Jos ei ole pysyvää varmuutta millä skriptillä komento milloinkin suoritetaan, niin tarvitaan jonkunlainen "valitsija". Yksi tapa on tehdä tuollainen if-skirpti, jossa tutkii onko skripti olemassa millä kielellä tehtynä. Samalla voidaan tehdä priorisointi.

        Sen jälkeen skriptihakemistossa voi olla jollain skripitillä pääte sh, jollain bash, jollain py, jollain js jne. Ja skriptin voi vaihtaa "lennossa" eri tulkin suoritettavaksi pelkästään päätteen perusteella. Aliakseen ei tarvitse koskaan kajota, koska se käyttää aina valintaskriptiä.


      • Anonyymi
        Anonyymi kirjoitti:

        Linkki pitää tehdä aina erikseen johonkin tiedostoon.

        Jos ei ole pysyvää varmuutta millä skriptillä komento milloinkin suoritetaan, niin tarvitaan jonkunlainen "valitsija". Yksi tapa on tehdä tuollainen if-skirpti, jossa tutkii onko skripti olemassa millä kielellä tehtynä. Samalla voidaan tehdä priorisointi.

        Sen jälkeen skriptihakemistossa voi olla jollain skripitillä pääte sh, jollain bash, jollain py, jollain js jne. Ja skriptin voi vaihtaa "lennossa" eri tulkin suoritettavaksi pelkästään päätteen perusteella. Aliakseen ei tarvitse koskaan kajota, koska se käyttää aina valintaskriptiä.

        Eikö se meinaa millään mennä jakeluun, mitä ongelmia tuosta jossittelusta seuraa. Tee malliksi se jossittelusi, tilanteessa jossa sinulla on kolme vaihtoehtoa;

        lotto.bash
        lotto.py
        lotto.sh

        Nyt haluat sillä jossittelullasi ajaa lotto.py scriptin. Näytä miten se tehdään, mikäli onnistut, niin minä näytän miten se tehdään symbolista linkkiä käyttäen, ja sitten vertaillaan mitä tässä oikein kannattaa soveltaa laajemmin käyttöön.


    • Anonyymi

      Tuollaisia on hauska tehdä joo arpoo oikeat voittotulokset peleistä, tietokone tietää ne ennalta.

      Itselläni on tuollainen, alkuperäinen tarkoitus tuolle omalle satunnaislukugeneraattorille oli simuloida minkälaisia planeetoista muotoutuu, kun niihin törmää asteroideja se muodosti kuvallisesti sitten 3D-jutun planeetasta :D

      Sittemmin olen kehittänyt omaa tuollaista arvontajuttua, nyt se tulostaa jo automaattisesti kupongeillekin veikkausnumerot, jotka voi heittää aina ruokakauppa-matkalla samalla, ja palauttaa voittokupongit kuten setelit.

      128-bittiSeksi muutin assembly-koodin jokin aika sitten satunnaisluku-laskukoodissani.

    • Anonyymi

      Oikeasti oikea vaihe olisi laittaa AMD:n grafiikkakiihdytin laskemaan "muka"-matriisi-pyöriksiään, jotta tulisi 256-bittinen laskentakoodi, ja niin saa ne datat mitä tehokkaampi prosessori laskee lottonumeroitakin.

      Grafiikkaprosessori, ei arvaa mitä oikeasti tekee, luulee piirtävänsä kuvia, mutta oikeasti arpookin lottonumeroita.

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

    Luetuimmat keskustelut

    1. Putin hoiti Suomen natoon ja myös Ruotsin

      Iso kiitos Vladimir Putinille. Hänen ansiosta pääsemme nyt Natoon. Putin halusi Naton lähelle ja nyt sai. Voimme tästä kiittää vain Putinia.
      Maailman menoa
      666
      8122
    2. Niinistö teki hetkessä Suomesta Venäjän ydinaseiden maalitaulun

      Kaiken lisäksi mies vielä lällätteli Putinille eilisessä tiedotustilaisuudessa ja käski katsomaan itseään peiliin. Kyllä vähän asiallisempaa käytöstä
      Maailman menoa
      467
      2359
    3. Voi Stefu ja sun kiivas luonteesi

      Sielä lentelee ullakkohuoneiston ikkunasta daamin vaatteet ja matkalaukut pitkin pihaa. Toisaalta,en ihmettele yhtään että tämä suhde päättyi näin,kyl
      Kotimaiset julkkisjuorut
      234
      2337
    4. Poliisi otti Stefun kiinni!

      Seiska tietää kertoa.
      Kotimaiset julkkisjuorut
      147
      1897
    5. Ohhoh! Martina Aitolehti ja seurapiirihurmuri-Jesper ekassa yhteiskuvassa - Sutinaa Mallorcalla!

      Martina Aitolehti ja seurapiirijulkkis-Jesper nauttivat toisistaan varsin vauhdikkaissa merkeissä Mallorcalla. Aitolehti ei ole esitellyt rakastaan vi
      Kotimaiset julkkisjuorut
      29
      1451
    6. Stefanilta tuli taas karu totuus Sofiasta

      Marokkolainen h*o*ra! Voi tsiisus kun mulla on hauskaa! Lumput lentää ikkunasta kun Stefu raivoaa h*uralleen🤣🤣🤣 Nyt ne popparit tulille, tästä tule
      Kotimaiset julkkisjuorut
      120
      1283
    7. Veikkaus: Miten The Rasmus pärjää Euroviisuissa?

      Euroviisuhuuma on ylimmillään, kun Suomi ja The Rasmus taistelee biisillään Jezebel. Bändi on tikissä, kunhan Lauri Ylösen ääni kantaa. Mitä veikka
      Viihde ja kulttuuri
      51
      1261
    8. Steppuli veressä

      Seiskan lööpissä Steppulilla naama ja nyrkit veressä. Ei tainnut ihan kamojen pihalle paiskominen riittää. Onkohan pistänyt kämpän tuusannuuskaks.
      Kotimaiset julkkisjuorut
      79
      997
    9. Ootko onnellinen kun ei tarvitse

      nähdä tätä tyhmää naamaa enää koskaan? Multa se särkee sydämen, mutta minkäs teen. Vaikka olisi kuinka sinnikäs eikä hellittäisi, se ei aina auta.
      Ikävä
      65
      869
    10. Oletko nähnyt eroottiset kohuleffat? Fifty Shades Of Grey -trilogia tv:stä

      Fifty Shades -trilogia starttaa, kun nuori opiskelijanainen Anastasia tapaa rikkaan liikemiehen. Seksisuhdehan siitä starttaa, höystettynä sadistisill
      Suhteet
      7
      822
    Aihe