#!/bin/bash 
#set +u #set -e
# skriptiajuri, näppäinversio  petteriIII 6.12.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
 
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

. $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 

Käynnistysviesti
SelvitäJärjestelmänKoko
SelvitäBackupTiedot
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
