1
Ohjelmointi, palvelimet ja muu edistyneempi käyttö / Vs: Ohjeita shell-skriptaukseen (bash)
« : 16.01.25 - klo:18.29 »
Myös BASH-raamatussa on monia assembler-tyyppisiä käskyjä - lukeaksesi ne päätteessä käske: man bash ja sitten käske: /Parameter Expansion. Siis kirjaimellisesti ottaen tuo sanoo että kyse ei ole käskyistä ollenkaan vaan tavasta esittää muuttujia toisella tavalla kuin ennen - siis 'Parameter Expansionit' ovat minkähyvänsä käskyn 'kytkin' elikä parametri elikä muokkaaja - useimmiten käskynä on echo tai =.
Eivätkä ne lisää käskyn suoritus-aikaan havaittavan paljoa. Helpointa kutsua niitä käyttötarkoituksensa mukaan assembler-tyyppisiksi käskyiksi.
Mutta Assembler-tyyppisiä käskyjä on montaa lajia ja BASH-raamatussa on niistä vain muutamaa lajia eikä niitäkään tarpeeksi jotta niiden perusteella voisi tehdä yhtäkään nopeaa skriptiä sillä mikäli skriptissä on yksikin uusi komento hidastuu toiminta jo silloin noin viisinkertaisesti. Eikä niistäkään ole esitetty esimerkkejä - ihan kuin ei oikeastaan haluttaisikaan että joku oppii niitä käyttämäään mutta että tarvittaessa voisi sanoa: kerroinhan minä. Eihän näidenkään asioiden ymmärtäminen vaikeaa ole, mutta kun ei heti alkuun saa käsitystä mistä on kyse niin useimmat ohittavat ne kokonaan.
Assembler-tyyppisiä käskyjä on tuhansia joten normaalilla tavalla niitä ei voi esittää vaan ne täytyy esittää monella merkillä, esimerkiksi: ${muuttujanimi##*joku-merkki} tai jotain muuta ihan toisenlaista merkkisotkua - merkkisotkua siksi että niitä voisi lajitella senmukaan minkätyyppistä toimintaa ne edustavat - tosin täydelliset määrittelyt ovat hävinneet historian kätköihin ja vain muutamia on saanut kaivettua takaisin esiin.
- mutta kaikissa on tuo: joku-merkki - ja se voi olla yksittäinen merkki, merkkiryhmä, regex, matemaattinen toiminto, funktiokutsu parametreineen ... tai jokin niiden yhdistelmä ... tai jotain muuta jonka BASH tuntee.
- niin kauan kuin yksinomaan assembler-tyyppisiä käskyjä on peräkkäin tulkataan ne kaikki samalla kerralla - ja lisäksi tulkki on järjestelmä-funktio joten se taitaa pystyä omissa tehtävissään moniajoon.
- assembler-tyyppiset käskyt toimivat myös matriisien kanssa - ja niillä voi määritellä käsittelyyn jonkun tietyn jäsenen tai määrätä kaikki jäsenet käytäväksi läpi.
- joten assembler-tyyppiset käskyt ovat se keino jolla C-kieli alistetaan BASH:in palvelijaksi - kokemuksia ei vielä paljoa ole joten voi sanoa vain: ainakin jossainmäärin - mutta toisaalta on ihan mahdollista että edistyneemmästäkin matematiikasta saa nopeaa. muuten aikanaan kun joku tosi isokenkäinen huomsi assemble-tyyppisten kyvyt riensi hän valmis-ohjelmien avuksi etteivät ne ihan reensijalle olisi jääneet ja laski sumuverhon 'Parameter Expansioitten' ylle.
On vain yksi paikka mistä assembler-tyyppisiä käskyjä löytää esimerkki-muotoisina ja kunnollisten selitysten kera: kansainvälisiltä foorumeilta vanhojen koodareiden kauan sitten kirjoittamista vastauksista toisten esittämiin kysymyksiin - silloin kauan sitten internetissä puhuivat vain totiset torvensoittajat ja kaikkeen saattoi luottaa - niitä viestejä kun lukee lukemattoman monia niin assembler-tyyppisten käskyjen muutkin hyödyt alkavat selvitä: niiden nopeus, vakaus, se että niitä voi ketjuttaa kuinka monta tahansa nopeuden paljoakaan laskematta eikä sitä että ketjuttamalla vain muutamia assembler-tyypisiä käskyjä saa aikaan uskomattoman monimutkaisia toimintoja - jotka edelleen ovat nopeita.
Mutta oikeiden vastauksien löytymiselle on yksi suuri hidaste: oikeita hakusanoja - esimerkiksi googleen - on hyvin vaikea määritellä - oikeat löytyvät usein vasta lukemattomien harha-iskujen jälkeen. Toisaalta sellaista aihepiiriä ei ole jota joku ei olisi ratkaissut - elikä: etsi niin varmasti löydät jos jaksat yrittää. Mutta joudut kyllä silloin-tällöin kantamaan myös oman kortesi kekoon - joten jaa keräämiäsi tietoja jotta jaksaisit jatkaa.
- kuinkahan tekoäly löytää kun oppii määrittelemään 'Parameter Expansion' yleisiä piirteitä?
Mutta ilmeisesti noiden vastauksien olemassa-olo ei ole ollut jonkun mieleen sillä nuo viestit on pyritty häivyttämään pois - ja koska netistä on puoli-mahdotonta poistaa toisten kirjoituksia niin ne on haudattu lukemattomien sellaisten vastausten alle joissa on vain tavanomaisia ratkaisuja. Koska niin tapahtuu poikkeuksetta niin voiko kyseessä olla ihmisten normaali toiminta sillä assembler-tyyppinen ei ole koskaan kysymyksen monien vastauksien loppu- eikä alkupuolellakaan vaan keskellä josta se on varmasti hidas löydettävä?
Jos jaksaa kerätä noita assembler-tyyppisiä käskyjä niin lopulta saa koottua niitä niin paljon ettei niin suurta kokonaisuutta hallitse ukko-uotinenkaan - joten ratkaisuksi voi koota niistä järjestettyjä joukkoja yhteen luntti-lappuun jota sitten voi selata editorissa. Ja kutsua niitä assembler-tyyppisiksi käskyiksi.
---
Toinen tapa esittää äsköinen asia: koska BASH toimii tulkatun kielen hitaudella niin saavuttaakseen nopeuden se pistääkin käännetyn ja moni-ajoon kykenevän ja siten nopean C-kielen tekemään työn. Samaahan yli-opistoissakin tehdään varsinkin isoissa kehitys-töissä: yksi professori laittaa monet nopeat opiskelijat tekemään sen hitaan käytännön työn.
Vanhat virtuoosit - ne 50 vuoden takaiset - osasivat suorittaa asiat noin. Jostain syystä hekään eivät kertoneet saavutuksestaan kunnolla - esimerkiksi äsköisillä sanoilla. Eivätkö he tajunneet mitä olivat saaneet aikaiseksi?
Nykyään RUST-ohjelmointikieli on tunkemassa Linuxiin. Sillä on tämä sama kyky ja Pythonilaiset ovat kitkeriä.
Eivätkä ne lisää käskyn suoritus-aikaan havaittavan paljoa. Helpointa kutsua niitä käyttötarkoituksensa mukaan assembler-tyyppisiksi käskyiksi.
Mutta Assembler-tyyppisiä käskyjä on montaa lajia ja BASH-raamatussa on niistä vain muutamaa lajia eikä niitäkään tarpeeksi jotta niiden perusteella voisi tehdä yhtäkään nopeaa skriptiä sillä mikäli skriptissä on yksikin uusi komento hidastuu toiminta jo silloin noin viisinkertaisesti. Eikä niistäkään ole esitetty esimerkkejä - ihan kuin ei oikeastaan haluttaisikaan että joku oppii niitä käyttämäään mutta että tarvittaessa voisi sanoa: kerroinhan minä. Eihän näidenkään asioiden ymmärtäminen vaikeaa ole, mutta kun ei heti alkuun saa käsitystä mistä on kyse niin useimmat ohittavat ne kokonaan.
Assembler-tyyppisiä käskyjä on tuhansia joten normaalilla tavalla niitä ei voi esittää vaan ne täytyy esittää monella merkillä, esimerkiksi: ${muuttujanimi##*joku-merkki} tai jotain muuta ihan toisenlaista merkkisotkua - merkkisotkua siksi että niitä voisi lajitella senmukaan minkätyyppistä toimintaa ne edustavat - tosin täydelliset määrittelyt ovat hävinneet historian kätköihin ja vain muutamia on saanut kaivettua takaisin esiin.
- mutta kaikissa on tuo: joku-merkki - ja se voi olla yksittäinen merkki, merkkiryhmä, regex, matemaattinen toiminto, funktiokutsu parametreineen ... tai jokin niiden yhdistelmä ... tai jotain muuta jonka BASH tuntee.
- niin kauan kuin yksinomaan assembler-tyyppisiä käskyjä on peräkkäin tulkataan ne kaikki samalla kerralla - ja lisäksi tulkki on järjestelmä-funktio joten se taitaa pystyä omissa tehtävissään moniajoon.
- assembler-tyyppiset käskyt toimivat myös matriisien kanssa - ja niillä voi määritellä käsittelyyn jonkun tietyn jäsenen tai määrätä kaikki jäsenet käytäväksi läpi.
- joten assembler-tyyppiset käskyt ovat se keino jolla C-kieli alistetaan BASH:in palvelijaksi - kokemuksia ei vielä paljoa ole joten voi sanoa vain: ainakin jossainmäärin - mutta toisaalta on ihan mahdollista että edistyneemmästäkin matematiikasta saa nopeaa. muuten aikanaan kun joku tosi isokenkäinen huomsi assemble-tyyppisten kyvyt riensi hän valmis-ohjelmien avuksi etteivät ne ihan reensijalle olisi jääneet ja laski sumuverhon 'Parameter Expansioitten' ylle.
On vain yksi paikka mistä assembler-tyyppisiä käskyjä löytää esimerkki-muotoisina ja kunnollisten selitysten kera: kansainvälisiltä foorumeilta vanhojen koodareiden kauan sitten kirjoittamista vastauksista toisten esittämiin kysymyksiin - silloin kauan sitten internetissä puhuivat vain totiset torvensoittajat ja kaikkeen saattoi luottaa - niitä viestejä kun lukee lukemattoman monia niin assembler-tyyppisten käskyjen muutkin hyödyt alkavat selvitä: niiden nopeus, vakaus, se että niitä voi ketjuttaa kuinka monta tahansa nopeuden paljoakaan laskematta eikä sitä että ketjuttamalla vain muutamia assembler-tyypisiä käskyjä saa aikaan uskomattoman monimutkaisia toimintoja - jotka edelleen ovat nopeita.
Mutta oikeiden vastauksien löytymiselle on yksi suuri hidaste: oikeita hakusanoja - esimerkiksi googleen - on hyvin vaikea määritellä - oikeat löytyvät usein vasta lukemattomien harha-iskujen jälkeen. Toisaalta sellaista aihepiiriä ei ole jota joku ei olisi ratkaissut - elikä: etsi niin varmasti löydät jos jaksat yrittää. Mutta joudut kyllä silloin-tällöin kantamaan myös oman kortesi kekoon - joten jaa keräämiäsi tietoja jotta jaksaisit jatkaa.
- kuinkahan tekoäly löytää kun oppii määrittelemään 'Parameter Expansion' yleisiä piirteitä?
Mutta ilmeisesti noiden vastauksien olemassa-olo ei ole ollut jonkun mieleen sillä nuo viestit on pyritty häivyttämään pois - ja koska netistä on puoli-mahdotonta poistaa toisten kirjoituksia niin ne on haudattu lukemattomien sellaisten vastausten alle joissa on vain tavanomaisia ratkaisuja. Koska niin tapahtuu poikkeuksetta niin voiko kyseessä olla ihmisten normaali toiminta sillä assembler-tyyppinen ei ole koskaan kysymyksen monien vastauksien loppu- eikä alkupuolellakaan vaan keskellä josta se on varmasti hidas löydettävä?
Jos jaksaa kerätä noita assembler-tyyppisiä käskyjä niin lopulta saa koottua niitä niin paljon ettei niin suurta kokonaisuutta hallitse ukko-uotinenkaan - joten ratkaisuksi voi koota niistä järjestettyjä joukkoja yhteen luntti-lappuun jota sitten voi selata editorissa. Ja kutsua niitä assembler-tyyppisiksi käskyiksi.
---
Toinen tapa esittää äsköinen asia: koska BASH toimii tulkatun kielen hitaudella niin saavuttaakseen nopeuden se pistääkin käännetyn ja moni-ajoon kykenevän ja siten nopean C-kielen tekemään työn. Samaahan yli-opistoissakin tehdään varsinkin isoissa kehitys-töissä: yksi professori laittaa monet nopeat opiskelijat tekemään sen hitaan käytännön työn.
Vanhat virtuoosit - ne 50 vuoden takaiset - osasivat suorittaa asiat noin. Jostain syystä hekään eivät kertoneet saavutuksestaan kunnolla - esimerkiksi äsköisillä sanoilla. Eivätkö he tajunneet mitä olivat saaneet aikaiseksi?
Nykyään RUST-ohjelmointikieli on tunkemassa Linuxiin. Sillä on tämä sama kyky ja Pythonilaiset ovat kitkeriä.