#!/bin/bash 
#set +u #set -e
# skriptiajuri, näppäinversio  petteriIII 26.11.2016
# reset  $TERM # varmistaa että pääte alkaa toimintansa asetukset alkutilassa
# stty sane # Joskus pääte saa järjettömiä asetuksia ohjelmien sivuvaikutuksena ja tämä palauttaa arvot järkeviksi. Onko parempi: <ctrl+j>stty sane<ctrl+j> 
# set -o errtrace  # virhemääritykset läpäisevät time-funktion  
echo 'Skriptiajuri käynnistyy. Tässä koneessa on BASH:in versio: '$BASH_VERSION'.  Versio 4.0 toimii jotenkin ja ylemmät versiot kunnolla' 
echo 'tämän koneen käyttöjärjestelmä-versio: '$(lsb_release -a | awk '{print $2}' | tr "\n" " ")
[[ -d /sys/firmware/efi ]] && echo 'kone on bootattu UEFI-muodossa' || echo 'konetta ei ole bootattu UEFI-muodossa'
echo -n backup on ajalta: $(cat /home/petteri/OMATSKRIPTIT/ARKISTO/APUTIEDOSTOT/BackupPäiväykset | tail -1); [[ $(find /media -type f  | grep /OMATSKRIPTIT/) ]] || echo ' , mutta tikkua ei ole'
kanta=''; kanta=$([[ -d /home/$USER/OMATSKRIPTIT ]] && echo "/home/$USER" || apu=("$(find  /media -maxdepth 4  | grep -w OMATSKRIPTIT | grep -v OMATSKRIPTIT/ | grep -v \(*\) )") && for n in ${apu[*]}; do echo $(stat -t $n | awk '{print $13" "$1}'); done | sort -k1 -n | tail -1 | awk '{print $2}' | sed 's/\/OMATSKRIPTIT//')
echo 'OMATSKRIPTIT-kansio sijaitsee paikassa: '$kanta | tee /tmp/skriptiajuri

du -b $kanta/OMATSKRIPTIT | awk '{sum += $1} END {print "OMATSKRIPTIT kansio käyttää:   " sum "  sanaa"}'

. $kanta/OMATSKRIPTIT/FUNKTIOKIRJASTO/Näppäimistön_funktiot        # kirjastot ladataan näin, jotta editoitaessa kirjastot luettaisiin editoriin 
toimivatko_näppäimistön_funktiot; (( $? )) && echo näppäimistön_funktiot eivät toimi && read && exit
. $kanta/OMATSKRIPTIT/FUNKTIOKIRJASTO/Skriptiajurin_funktiot       # ladataan toinen kirjasto
toimivatko_skriptiajurin_funktiot; (( $? )) && echo Skriptiajurin_funktiot eivät toimi && read && exit

varmista_että_kovalevyn_OMATSKRIPTIT_on_uudempi_kuin_muistitikulla_oleva
Osioselvitys
trap LopetaSkriptiJaPalaaSkriptiajuriin SIGINT                     # CTRL-c kutsuu kirjastossa tätä valikkonäppäimille määriteltyä funktiota 
# trap 'echo -e "virheenkäsittelyä kutsuttu skriptistä:"${0}".   Kutsu tehtiin riviltä:"${BASH_LINENO[0]}"\n\n"' ERR 
# trap 'echo virherivi:${LINENO[@]};echo ${FUNCNAME[@]} ; read' ERR 
napit="f2=koodaa, f3=käyttöohjeet, f4=dokumentoi, end=erikoistoimet, home=kirjanmerkit, insert=tarkastele tuloksia" 
export -f ValitseValittavistaYksi LopetaSkriptiJaPalaaSkriptiajuriin command_not_found_handle # Kaikissa skripteissä tunnetaan nämä käskyt jos niitä ajetaan skriptiajurilla 
 
LueMistäKansiostaAloitetaan 
LueMissäOnPoikettuArkistoon
täytä_valittavat
while true
do
  VarmistaEttäArkistotOnTehty
  TalletaMistäKansiostaEnsikerrallaAloitetaan
  HaeSenRivinNumeroJollaViimeksiTyöskenneltiinTässäKansiossa # täytä_valittavat
  ValitseValittavistaYksi "kansio:$KansionNimi" "$napit"
  TalletaSenRivinNumeroJollaNytTyöskennelläänTässäKansiossa 
  ToimintaValinnanPerusteella
  # MikäliLöytyiMäärittelemätönFunktioNiinLisääSeSkriptiin
  echo -en "\033c" #sync # kirjoittaa cachet levylle: siis jos kone kaatuu tämänjälkeen niin kaikki on kirjoitettu levylle
done
