Kirjoittaja Aihe: On mennyt vähäseksi Basch-script:it viimeisen 10- vuoden aikana  (Luettu 1086 kertaa)

Jm71

  • Käyttäjä
  • Viestejä: 13
    • Profiili
On mennyt vähäseksi Terminaali ja Basch-script:it viimeisen 10- vuoden aikana

kamara

  • Käyttäjä
  • Viestejä: 2752
    • Profiili
Itse kyllä käytän/teen niitä aina silloin tällöin.

raimo

  • Käyttäjä
  • Viestejä: 3853
    • Profiili
On tosiaan vähentynyt.
Johtuu ehkä siitä että en ole muuton jälkeen jaksanut/viitsinyt virittää Raspia tulille.
Sen kanssa tulee tehtyä ja muokattua skriptejä.

En nyt sanois ihan noin pitkää ajanjaksoa, vuosi riittää täällä.
« Viimeksi muokattu: 30.10.22 - klo:11.42 kirjoittanut raimo »
So long and thanks for all the fish!

petteriIII

  • Käyttäjä
  • Viestejä: 607
    • Profiili
BASH on tuhottu tahallaan - toiset halusivat kalifiksi kalifin paikalle ja kun niillä ei itsellään ole lihasta niin ensin täytyi viedä ne lihakset BASH:iltakin.

Ensin vietiin BASH:in tukijalat. Esimerkiksi bc on BASH:in matikkanero - mutta sen kyvyt tuleva kunnolla esiin vasta C-kielisen ohjelmoinnin kautta. Mutta mahtaakohan kukaan enää niitä C-kielen ohjelmien tekemistä hallita - bc:n tuhoaminen alkoi nimittäin kauan-kauan sitten.

Esimerkiksi annan yhden ihan älyvapaan laskennan - käytännössä sillä ei ole mitään järkevää tehtävää mutta se kertoo kuinka pätevä bc on. Ohjelma laskee 50.000:nennen arvon fibonacci sarjasta (toki se toimii paljon pidemmälle, ainakin 5.000.000):

echo 'n=50000;m=(n+1)/2;a=0;b=1;i=0;while(m){e[i++]=m%2;m/=2};while(i--){c=a*a;a=c+2*a*b;b=c+b*b;if(e){t=a;a+=b;b=t}};if(n%2)a*a+b*b;if(!n%2)a*(a+2*b)' | bc | tr -d '\\\n'

- laskenta-tuloksessa on numeroita 10450. Laskenta kestää huonolla läppärillä 73msec.
- 50000 on se n:n arvo alussa ja voi sen toki muuttaakin.
- käskyn voi kopioida päätteeseen jossa se toimii tekemättä mitään muuta.
- netissä on generaattori joka laskee saman homman java-skriptillä isossa koneessa. Kestää 12 sekuntia. Tulos on sama.

Ja awk on toisenlainen matikkanero ja sillä on muitakin ominaisuuksia. Ja sed on tekstinkäsittely-hirviö. Muitakin ohjelmia on vaikka mihin - tosi nopea ja kyvykäs piirrosohjelma - ja puheentunnistuskin löytyy. BASH on kaikessa paljon-paljon huonompi - mutta se osaa käyttää niitä kaikkia orjinaan ilman mitään lisämäärittelyjä. Jokatapauksessa kun tuhotaan ensin nuo lisäohjelmat niin BASH on senjälkeen helppoa tuhota.

Myös itse BASH:ia romutetaan - esimerkiksi opetetaan käyttämään looppeja - mutta itseasiassa BASH-kielisiä looppeja täytyy välttää viimeiseen asti. Samoin if-then-else rakenne vanheni jo vuosikymmeniä sitten.
Virheitä ei kuulemma saa opettaa joten lopetan.

Mistofelees

  • Käyttäjä
  • Viestejä: 600
    • Profiili
Laiteläheisiä hommia on helppo tehdä bashilla. Esimerkiksi tcp-portin lukeminen ja viestien lähettely.
Itsellä on tapana tehdä suuri osa laiteläheisistä tempuista bashilla (osa tietenkin C:llä), tehdä "matemaattinen" käsittely php:llä ja ulostus html-sivulle. Graafit tulevat mukavasti phplot:lla.
Vasta viimeaikoina olen opetellut AJAX:a ja inhoan joka hetkeä. Sitä nyt vaan on pakko käyttää, kun ei muutakaan tapaa ole tiettyjen ongelmien ratkaisuun.

Bash;ssa on muutamia omituisuuksia, jotka olisi pitänyt miettiä jo järjestelmää kokoonkeittäessä kuntoon, jotta ne eivät aina olisi käyttäjän kiusana.
Pahin on if-lause. Kun saat IF:n toimimaan ja menet tekemään siihen pienenkin muutoksen, sen toiminta lakkaa, eikä palaudu vaikka mitä yrittäisit. Ainoa tapa on kirjoittaa koko lause uudestaan merkki merkiltä. Ainoa syy, mitä olen keksinyt, on se, että editoidessa sekaan pujahtaa joku näkymätön merkki. Mutta mistä ja miksi juuri IF-lauseeseen ?

Muutenkin IF on omituisuuden ruumiillistuma.

Toinen omituinen on datan syöttö tiedostoon.
teejotain >>file.txt on eri asia, kuin  file="file.txt"; teejotain >>$file
Ei kuitenkaan aina

Kaikkineen bashilla on mukava keittää pieniä scriptejä, joilla saa automatisoitua asioita.
Eikä bash missään tapauksessa ole yhtä paha, kuin M$:n komentokieli, jonka kanssa tuli MSDOS-aikaan rakenneltua isojakin työkalupaketeita. M$ kusi taskuunsa, kun ei ottanut komentokieleksi Basic:a.