Linux-ohjelmointi 2009-04-18 17:11

Kuvaus:

Linux-ohjelmoinnin alkeita.

Bash-skriptaus

Yksinkertaisinta Linux-ohjelmointia on Bash-skriptaus, jossa normaalistikin päätteessä kirjoitettavista komennoista muodostetaan kokonaisuuksia.

Skripti-tiedosto on tavallinen tekstitiedosto, jonka alkuun kirjoitetaan

#!/bin/bash

Kirjoitetaan seuraavalle riville esimerkiksi

echo "Täältä tullaan Venäjä"

ja tallennetaan tiedosto nimellä skripti.sh (loppupääte ei ole välttämätön).

Tiedosto täytyy vielä tehdä suoritettavaksi ajamalla chmod +x skripti.sh, jonka jälkeen sen voi ajaa päätteessä komennolla ./skripti.sh.

Esimerkki: Varmuuskopiointi

Tässä yksinkertainen varmuuskopiointiskripti:

#!/bin/bash          
echo "Varmuuskopioidaan PROJEKTIT..."
rsync -av /media/PROJEKTIT /media/USBLEVY
echo "Varmuuskopioidaan KOTIHAKEMISTO..."
rsync -av $HOME /media/USBLEVY --exclude-from "$HOME/backup-exclude"

Käynnistyskuvakkeen voi tehdä klikkaamalla työpöytää kakkospainikkeella, ja valitsemalla Create launcher..., antamalla nimen, ja Command-kohtaan skriptin sijainnin.

Käynnistyskuvakkeen luominen Ubuntussa

Esimerkki: Compizin poistaminen väliaikaisesti käytöstä

Jotkut ohjelmat eivät toimi kunnolla jos työpöydän 3D-efektejä tuottava Compiz on käynnissä. Ideana on korvata compiz metacitylla ohjelman käynnistyessä, ja käynnistää compiz jälleen ajon päätyttyä. Tässä esimerkki OpenArena-pelistä, ja sen ajamista varten kirjoitettu skriptitiedosto (esim nimellä oa.sh).

#!/bin/bash
metacity --replace &
cd /opt/openarena
./openarena.x86_64
compiz --replace
Need help fixing bash script to disable compiz when gaming
Pari erilaista skriptiä Compizin poistamiseksi väliaikaisesti käytöstä.

Syöte näppäimistöltä

Käyttäjältä voi pyytää vastausta vaihtoehtoisille suoritustavoille:

#!/bin/bash
echo "Valitse (1) tai (2)?";
read -n 1 valittu
   case $valittu in
      1) echo "Vaihtoehto 1 valittu";
         exit;;
      2) echo "Vaihtoehto 2 valittu";
         exit;;
   esac
exit

Linkit

Bash-skriptaus
Bash-skriptauksen alkeita suomeksi.
BASH Programming - Introduction HOW-TO
Bash-skriptauksen alkeita.
Advanced Bash-Scripting Guide
Monimutkaisempaa skriptausta.
Bash Reference Manual
Bash-manuaali.

Graafiset käyttöliittymät

Yksinkertaisia graafisia käyttöliittymiä (lähinnä valikoita) voi tehdä zenityllä. Pidemmälle meneviä käyttöliittymiin soveltuu esim. GTK+, QT, tai wxWidgets/C++.

Zenity

Tässä yksinkertainen valikko, jossa voi valita käynnistettävän pelin. Skripti poistaa compizin käytöstä pelin ajon ajaksi, ja palauttaa käyttöön pelin päätyttyä.

#!/bin/bash

THEGAME=$(
   zenity  --list --height=300 --column="check" --column="Label" --radiolist \
   true "freecol" \
   false "openarena" \
   false "supertuxkart" \
   false "xmoto" \
   false "?" \
);

# jos jokin valittu ja painettu "ok"
if [ $? == 0 ]; then

   # korvataan compiz metacitylla
   metacity --replace &

   # yksi peli asennettu lähdekoodista (valinta "openarena")
   if [ $THEGAME = "openarena" ]; then
      cd /opt/openarena
      ./openarena.x86_64

   # vapaavalintainen peli (valinta "?")
   elif [ $THEGAME = "?" ]; then
      THEGAME=`zenity --entry --text="What to play?"`
      $THEGAME

   # muut suoritetaan sellaisenaan ohjelman nimellä
   else
      $THEGAME
   fi

   # korvataan metacity compizilla pelin päätyttyä
   compiz --replace
fi

Skriptille voi tehdä pikakuvakkeen paneeliin

  1. klikkamalla paneelia kakkospainikkeella,
  2. valitsemalla Add to panel...,
  3. sitten Custom Application Launcher, ja +Add,
  4. ja kirjoittamalla nimen kohtaan Name, ja kohtaan Command skriptin sijainti.

Valintaohjelma käynnistyy paneelin kuvaketta klikaamalla.

A complete zenity dialog examples 1
Zenity-valikkoesimerkkejä.

Mikäli zenity-valikoiden aukeaminen taustalle häiritsee, vaihda tiedostossa /usr/share/zenity/zenity.glade kaikki <property name="focus_on_map">False</property> -kohdat arvoon True.

wxWidgets ja C++

wxWidgets on ohjelmointirajapinta, jolla voi tehdä automaattisesti eri käyttöjärjestelmän ulkoasuun mukautuvia käyttöliittymiä. Sillä on tehty mm. Audacity. Ohjelmointikielenä wxWidgets käyttää ensisijaisesti C++:aa, mutta siitä on käännöksiä muillekin kielille.

Linkit

Uusimmat ohjelmointilinkit:

Lisää linkkejä haulla

Luokka: »
Avainsanat:, , , , , , , ,
http://raulihaverinen.fi/verkko-opas/?id=221