#!/bin/bash 
#set +u #set -e
# skriptiajuri, näppäinversio  petteriIII 13.10.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 varmistetaan_että_kovalevyn_OMATSKRIPTIT_on_uudempi_kuin_muistitikulla_oleva; varmista_että_kovalevyn_OMATSKRIPTIT_on_uudempi_kuin_muistitikulla_oleva   
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'
du -b ~/OMATSKRIPTIT | awk '{sum += $1} END {print "~/OMATSKRIPTIT kansio käyttää:   " sum "  sanaa"}'
kanta="/home/"$USER; echo 'skriptiajuria ajetaan paikasta: '$kanta'/OMATSKRIPTIT' 
. $kanta/OMATSKRIPTIT/FUNKTIOKIRJASTO/Näppäimistön_funktiot        # kirjastot ladataan näin, jotta editoitaessa kirjastot luettaisiin editoriin 
. $kanta/OMATSKRIPTIT/FUNKTIOKIRJASTO/Skriptiajurin_funktiot       # ladataan toinen kirjasto
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=ohjeet, f4=dokumentoi, end=erikoistoimet, home=kirjanmerkit, insert=tarkastele tuloksia" 
export -f ValitseValittavistaYksi LopetaSkriptiJaPalaaSkriptiajuriin command_not_found_handle # Skriptiajurissa oltaessa tunnetaan myös nämä käskyt  
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
