Kirjoittaja Aihe: skriptailua.  (Luettu 2398 kertaa)

E.K.Virtanen

  • Käyttäjä
  • Viestejä: 736
    • Profiili
    • Sähköaivoilua
skriptailua.
« : 04.04.07 - klo:20.47 »
No niin. Nyt kun keksin pikku projektin jonka kanssa treenailla tuota skriptausta niin innostuin asiata.
"ohjelmointi englanti" vaan ei ole vahva lajini. Ohjeita löytyy googlesta vaan suomeksi tuntuu olevan kivien ja kantojen alla.

Ideanani olisi luoda simppeli installeri.
Ensinnäkin, sen pitäisi asentaa sudo apt-get install (muuttuja) avulla muutama kirjasto. Kirjastoja on 8 kappaletta.
Ensiksi ajettelin luoda muuttujan jokaiselle kirjastolle...vaikka tyyliin
Koodia: [Valitse]
a="gcc"
b="libc6-dev"
c="ncurses-dev"
e="libx11-dev"
f="libxext-dev"
g="libxpm-dev"
h="libxrandr-dev"
i="libxrender-dev"

josta sitten for laskuri in a b c d e f g h i ja luupissa sudo apr-get install (laskuri)
Tämän jälkeen wgetillä heataan netistä asennuspaketti, avataan se tar... ja purkamisen jälkeen suoritetaan hakemisto/./install.sh -i

Nyt kun kerran termistö hukassa niin joudun käyttämään ohjelmointi sanastoa.
Eli, voinko luoda noista kirjastoista tauukon? (lista?).
Esim:
a(1)="gcc"
a(2)="libc6-dev"
a(3)="ncurses-dev"
jnejnejne...
ja suorittaa for loopin jotenkin a(min) a(max)?

Fa1r

  • Käyttäjä
  • Viestejä: 221
  • Reply #1!
    • Profiili
Vs: skriptailua.
« Vastaus #1 : 04.04.07 - klo:21.50 »
"Listalla" on ohjelmoinnissa yleisnimitys "Array".
Bashissa näitä "listoja" muodostetaan näin:

         Huom!!
             |      \

Muuttuja[0] = "Ensimmainen lause"
Muuttuja[1] = "Toinen lause"
Muuttuja[2] = "Kolmas lause"

Kaikki listan kohdat löytyvät esimerkiksi näin:
Koodia: [Valitse]
Muuttuja[@]
Koodia: [Valitse]
echo "$Muuttuja[@]"Ensimmainen lause Toinen lause Kolmas lause

Skriptit ovat tylsiä ilman interaktiivisuutta, skriptien argumentit löytyvät muuttujista $0 -> $??
esim:

echo "$0"
./omaskripti

echo "$1"
lol

echo "$@" #kaikki argumentit
./omaskripti lol argumentteja piisaa

eli kirjastojen ( ~riippuvuuksien? ) asentaminen onnistuu
argumenteista:
Koodia: [Valitse]
sudo apt-get install $@
listasta "Muuttuja":
Koodia: [Valitse]
sudo apt-get install $Muuttuja[@]
... glah glah glah ...

(muuttujan osien )määrän saa selville lisäämällä sen alkuun #-kirjaimen, esim:

Koodia: [Valitse]
echo #Muuttuja[@]3

Tästäpä alkuun, tätähän voisi jatkaa vaikka kuinka.

Mielenkiintoisen aiheen olet valinnut, onnittelut siitä. Skriptaaminen ja koodailu ylipäätänsä on kuin AIDS, tappaa hitaasti ( niin tekee tosin kaikki muukin ) ;D.

Huomautus! Tämän viestin koodi on testaamatonta vaikkakin netistä tarkistettua, joten siinä saattaa olla ja todennäköisesti on virheitä.
What you don't know can hurt you, only you won't know it.
--$(fortune)
Elastisen Linux-biisi

E.K.Virtanen

  • Käyttäjä
  • Viestejä: 736
    • Profiili
    • Sähköaivoilua
Vs: skriptailua.
« Vastaus #2 : 05.04.07 - klo:00.04 »
Kiitoksia avusta. Kyllä tämä tästä vielä  ;)
Tunnin räpellyksen jälkeen sain jo jotakin aikaan. Ei se kummoinen ole mutta toimii ja tekee sen mitä pitääkin  ::)

Koodia: [Valitse]
#!/bin/bash

## variables
library=( gcc libc6-dev ncurses-dev libx11-dev libxext-dev libxpm-dev libxrandr-dev libxrender-dev )
url=http://prdownloads.sourceforge.net/fbc/FreeBASIC-v0.16b-linux.tar.gz?download
filename=FreeBASIC-v0.16b-linux.tar.gz
folder=FreeBASIC

## program itself
clear
echo "This script will install FreeBASIC .16 (stable) compiler and following libraries in your system:"
echo
echo ${library[@]:0}

## ok, are you sure
echo -n "Do you want to continue (y/n)";
keypress=$(head -c1)
echo

case $keypress in
y) echo "Checking..."
;;

*) echo "Installation aborted."
exit 0
;;
esac

## let's check (and) install those libraries.
echo "Checking and installing libraries..."
sudo apt-get install ${library[@]=:0}

## download fb .16 stable
echo "downloading FreeBASIC .16 stabel for linux"
wget "$url"

## unpack .tar
echo "unpacking $filename"
tar xvzf "$filename"

## install FB
cd "$folder"
sudo ./install.sh -i

echo "Have fun with your FreeBASIC."
echo

exit 0


Haukkua, kommentoida ja neuvoa saa.