- saadaksesi Skriptiajurin toimimaan anna ensi käsky: mkdir -p ~/OMATSKRIPTIT/FUNKTIOKIRJASTO && mkdir -p ~/OMATSKRIPTIT/OHJEITA/"Skriptiajuri, näppäinversio" && mkdir -p ~/OMATSKRIPTIT/OHJEITA/"Skriptiajuri, hiiriversio" && mkdir ~/OMATSKRIPTIT/"KOE- JA ESIMERKKISKRIPTIT" && touch ~/OMATSKRIPTIT/"Skriptiajuri, näppäinversio" ~/OMATSKRIPTIT/"Skriptiajuri, hiiriversio" ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/IDEfunktiot1 ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/IDEfunktiot2 ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/valikkonäppäimille ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/valikkohiirelle ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/Xref_funktiot ~/OMATSKRIPTIT/"KOE- JA ESIMERKKISKRIPTIT"/kertotaulu ~/OMATSKRIPTIT/OHJEITA/{"Skriptiajuri, näppäinversio","Skriptiajuri, hiiriversio"}/{arkistonkäyttö,"geditin ja päätteen asetukset",nappulatekniikkaa,"uudet käskyt"}
hae kopiopöydälle koodit sivulta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg293780#msg293780ja liitä toinen tiedostoon: ~/OMATSKRIPTIT/Skriptiajuri, näppäinversio
ja liitä toinen tiedostoon: ~/OMATSKRIPTIT/Skriptiajuri, hiiriversio
hae kopiopöydälle koodi sivulta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg300081#msg300081ja liitä se tiedostoon: ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/IDEfunktiot1
hae kopiopöydälle koodi sivulta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg300185#msg300185ja liitä se tiedostoon: ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/IDEfunktiot2
hae kopiopöydälle koodi sivulta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg296419#msg296419 ja liitä se tiedostoon: ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/valikkonäppäimille
hae kopiopöydälle koodi sivulta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg295198#msg295198ja liitä se tiedostoon: ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/valikkohiirelle
hae kopiopöydälle koodi sivulta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg303513#msg303513 ja liitä se tiedostoon: ~/OMATSKRIPTIT/FUNKTIOKIRJASTO/Xref_funktiot
Ja kannattaa hakea yksi esimerkkiskripti ja muutama ohje, esimerkiksi:
http://forum.ubuntu-fi.org/index.php?topic=303.msg292029#msg292029ja liitä se tiedostoon ~/OMATSKRIPTIT/KOE- JA ESIMERKKISKRIPTIT/kertotaulu
Mikäli haluat IDE:en käyttöohjeita niin hae koodit sivuilta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg302036#msg302036ja liitä ne ehdotettuihin paikkoihin
Uusien käskyjen ohjeet löutyvät sivulta:
http://forum.ubuntu-fi.org/index.php?topic=44605.msg305254#msg305254liitä ne ehdotettuihin paikkoihin
- anna käsky: chmod +x ~/OMATSKRIPTIT/"Skriptiajuri, näppäinversio" && chmod +x ~/OMATSKRIPTIT/"Skriptiajuri, hiiriversio"
- jos unohdat antaa IDE:lle suoritusoikeuden, saat ajo-yrityksestä virheviestin: permission denied
- Millä Linuxilla näitä IDE:jä käytätkin niin Linuxeihin täytyy ladata tekstinkäsittely-ohjelma gedit. Yleensä se käy käskyllä: sudo apt-get instal gedit .
- yleensä IDE:jä voi ajaa mýös laitteen tiedostoselaimella (nautilus, Dolphin, Pluma ... ).
- yleensä näiden skriptien ajamilla skripteillä ei täydy olla suoritusoikeutta, ei riviä #!/bin/bash, nimien pituus ja merkkivalikoima ovat rajoittamattomia, nimien peräliite .sh kannattaa jättää pois ...
- skriptejä voi ajaa tikultakin. Käyttöoikeudet, polut ja tiedostomuoto vain oikeiksi.
- ajettaessa ensimmäistä kertaa IDE:t alustavat nyt OMATSKRIPTIT-kansion, joten enää ei tarvita kikkailua. Kumpikin IDE toimii samassa ympäristössä ja toinen alustaa myös toisen; ja siirryttäessä IDE:stä toiseen toinen jatkaa siitä mihin toinen lopetti. Muuten IDE:llä voi ajaa myös toista IDE:ä.
- käskyllä ~/omatskriptit/"Skriptiajuri, hiiriversio" voi ajaa skriptiä: Skriptiajuri, hiiriversio
ja käskyllä ~/omatskriptit/"Skriptiajuri, näppäinversio" voi ajaa skriptiä: Skriptiajuri, näppäinversio
- Skriptiajurit:t muuttuvat nyt niin nopeasti että kestää jonkiaikaa tarkistaa onko foorumille kirjoitetusta kaikki toimivaa
-------
Nyt alkaa tulla pientä tarvetta skriptien debuggaamiseen. Debuggaamiseenkin on monta keinoa ja yksi niistä kevyimmistä keinoista on laittaa epäilyttävän koodin-pätkän eteen:
set -x; trap "echo hit return;read x" DEBUG ja koodin-pätkän perään:
set +x; trap "" DEBUG
IDE:llä on nopeaa kokeilla mitä perää on uskomuksissa. Esimerkiksi matriisin passaaminen parametrina, ainakin minulle sen on kerrottu olevan mahdotonta:
#!/bin/bash
function Tulosta_matriisi () {
eval echo -e "' '\${$1[@]/%/\\\n}"
}
matriisi[1]="Marilla oli karitsa"
matriisi[2]="sen villa lumivalkoinen"
matriisi[3]="minne Mari menikään"
matriisi[4]="karitsa meni perässään"
Tulosta_matriisi matriisi
for n in {22..32}; do y[$n]=$n; done
Tulosta_matriisi y
- ziljoona jäseninen matriisi tulostuu myös. Kaksi-dimensioisen matriisin tulostukseen joutuu koodia puukottamaan vähän:
#!/bin/bash
function Tulosta_matriisi_rivi () {
eval echo -e \${$1[@]}
}
function Tulosta_matriisi_kokonaan () {
Sarakeluku=$2
Rivi=0
while true; do
for (( n=1; n<=Sarakeluku; n++ )); do
[[ ! $(eval echo -e \${$1[n+$Sarakeluku*Rivi]}) ]] && return
xxxx=$xxxx" "$(eval echo -e \${$1[n+$Sarakeluku*Rivi]})
done
Tulosta_matriisi_rivi xxxx
xxxx=''
let Rivi++
done
}
matriisi[1]="Marilla oli karitsa"
matriisi[2]="sen villa lumivalkoinen"
matriisi[3]="minne Mari menikään"
matriisi[4]="karitsa meni perässään"
Tulosta_matriisi_kokonaan matriisi 1 # koska BASH:issa ei ole kaksiulotteisia matriiseja niin tässä on tehty samoin kuin normaalistikin: kaksiulotteinen kuvataan yksiulotteisessa
# taittaen se rivi kerrallaan. Kutsun kirjoitusasu on: Tulosta_matriisikokonaan <tulostettavan matriisin nimi> <sarakkeiden luku tulosteessa>
# samalla menetelmällä voi kuvata kolmi-dimensioisetkin
echo
for n in {100..243}; do mahtavamatriisi[$n-99]=$n; done
Tulosta_matriisi_kokonaan mahtavamatriisi 12
read -p 'jatkaakseesi paina enter'
- tämä on käsittääkseeni ratkaisu BASH:in pahimpaan pulmaan: luullaan että yleiskäyttöinen funktio on mahdottomuus. Parametrin palautusta ei hyödynnetä, mutta sekin on näissä ja paljon parempana kuin yleensä onkaan: parametreja ei täydy edes määritellä.
- siis sama funktio tulostaa olipa matriisin muoto mikähyvänsä yksi- tai kaksiulotteinen.