Hjælpescripts til Ubuntu

Dette forum bruges på EGET ANSVAR til at lege med scripts og andre ting med risiko for at beskadige sit eget og andres systemer.
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

Jakob77 skrev:Jeg ved endnu ikke, om det vil kunne stå for en nærmere kritik, men umiddelbart synes jeg, at det ser ud til at køre godt.

Det ser bedre ud, men der er stadig en del ting du skal have forbedret.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hjælpescripts til Ubuntu

Indlæg af Jakob77 »

Og jeg har allerede en lille underfundig rettelse til ged

Hvis du også holder ged i Virtualbox nu, så kan du bare skrive "ged ged"


Og udskifte denne linje:


Kode: Vælg alt

"alias") `echo 'Funktionen er under konstruktion og ligger på lur, der mangler måske bare et par dokumenter, før den kan præsenteres.'`;;


med denne linje:

Kode: Vælg alt

"alias") `echo echo 'Funktionen er under konstruktion og ligger på lur, der mangler måske bare et par dokumenter, før den kan præsenteres.'`;;


Og du gemmer filen ( Ctrl + s ) og åbner en terminal og tester kommandoen "ged alias"

Før så du ikke teksten, det gør du nu, har jeg ret..?
Hvorfor ved jeg ikke.






Ja, jeg synes også, at det er en glimrende idé, hvis testfolket kører med Virtualbox.

Men under alle omstændigheder vil jeg anbefale dem at tage backup af deres data, som jeg allerede har gjort længere oppe.
Det må ligge underforstået, at når man bliver bedt om at tage backup af sine data, så er det fordi, der kan være risiko for, at systemet bryder sammen, så det hele skal installeres om.
Ellers er det i hvert fald sagt nu.

For mit vedkommende har jeg svært ved at se, at det er så forfærdeligt at ominstallere ubuntu. Det er jo pære let og vi skal alligevel gøre det jævnligt.

Endelig vil jeg også godt påpege, at jeg selv har brugt ged scriptet i flere år, og det har altid kørt upåklageligt. At det skulle vær til særlig fare for nogen, har jeg meget svært ved at tro på. Har man ikke fulgt med og ikke læst hjælpen kan man nok blive lidt chokket over alle de filer den kan åbne samtidigt og man efterfølgende skal lukke ned, men det er jo ren gedit håndtering.
Den største fare i scriptbyggeriet tror jeg ofte for begyndere ligger i, at der ikke er ordentligt styr på kopieringer. Men det kan et script som ged ( når det er færdigudviklet ) måske hjælpe meget med at rette op på. :)
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

Hjælp skal være i flere linjer med en paragraf til hvert paramter og ens indentering for beskrivelserne af parameterne. Linjerne skal begrænses til 80 tegn per linje.

Du har blandet GNU longnames med en anden stil (BSD?), hold dig til en (-help vs --help).

I den første kode du postede er det noget skidt at hjælp ligger i et andet script end det høre til. Det er også yderst besværligt at skulle kopiere flere scripts ud og lægge dem bestemte steder, læg det i stedet op som en zip fil, eller ENDNU BEDRE læg det på github.
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

Put mellemrum efter # eller bliver det svært at læse.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hjælpescripts til Ubuntu

Indlæg af Jakob77 »

AJenbo skrev:Hjælp skal være i flere linjer med en paragraf til hvert paramter og ens indentering for beskrivelserne af parameterne. Linjerne skal begrænses til 80 tegn per linje.

Du har blandet GNU longnames med en anden stil (BSD?), hold dig til en (-help vs --help).

I den første kode du postede er det noget skidt at hjælp ligger i et andet script end det høre til. Det er også yderst besværligt at skulle kopiere flere scripts ud og lægge dem bestemte steder, læg det i stedet op som en zip fil, eller ENDNU BEDRE læg det på github.


Kan du beskrive det første lidt nærmere. Det lyder som om, at du har noget god kode til at optimere hjælpen, så den bliver mere læselig..?

Jeg ved ikke, at har blandet kommandostilarter. Men det er da godt nok min mening, at alle tænkelige argumenter for hjælp så vidt muligt bør fungere. Så hvis jeg har glemt nogen, så må du gerne sige til, selvom det evt. ikke er din favorit kop te. :)
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hjælpescripts til Ubuntu

Indlæg af Jakob77 »

Angående "ged"

AJenbo skrev:Du skal også fjerne alt det udkommenterede kode


Skal vi ikke hellere gøre koden aktiv og se om vi kan få den til at fungere, så ged automatisk (dog med sudo) kan gøre et nyt script kørbart straks det er gemt..? :)


AJenbo skrev:Du skal indentere kode der er betingede, som eks den der står mellem case-esac og if-fi.

Det sprog må jeg prøve, om jeg kan dekode i morgen. :)
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

Jakob77 skrev:zx.sh

Her er en mere gennem arbejdet udgave af dit lukke script:

Kode: Vælg alt

#!/bin/bash
# Dette script er under udarbejdelse
#
# Ved kørsel lukker scriptet terminalen, vær blot opmærksom på, at hvis
# et andet programmer end terminalen kører scriptet, så bliver dette
# også lukket.

if [ $1 = "-h" -o $1 = "--help" ]
then
    echo "Brug: $0"
    echo ''
    echo 'Flag:'
    echo '  -h, --help     Vis denne hjælpe side'
    exit
fi

kill -1 $PPID


Læk blandt andet mærke til hvordan linjerne er opdelt, hver funktion optræder kun 1 gang og ikke 2-4 og det er tydeligt at se hvad scriptet gør til sidst. Bemærk at kill -9 ikke er det samme som exit, det lukker terminalen NU, og gemmer ikke sessions data. Det vil eks sige at history ikke bliver opdateret med de kommandoer som er blevet kørt i løbet af forløbet. Hvis du øsnker det skal være lige som exit så brug -1 i stedet.
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

Jakob77 skrev:zhis2.sh (moderscript), som jeg har lagt i bin for at få path til det:

Her er så en oprenset udgave:

Kode: Vælg alt

#!/bin/bash -i
# Dette script er under udarbejdelse, så intet af nedenstående må tags for pålydende.
#
# Dette script er indtil videre kun et udkast ved navn "zhis2.sh", som er bygget
# til at hjælpe med at bruge terminalkommandoen "history" i særlige varianter.
# Scriptet er inspireret af denne debat:
# https://ubuntudanmark.dk/forum/viewtopic.php?p=141146#p141146
# Scriptet må kopieres, og jo mere det spredes og spreder glæde, jo gladere
# bliver jeg også. Det er altid på eget ansvar at lave et script ud af min tekst.
# Går det skidt, er det kopistens egen skyld. Men går det godt, som jeg formoder,
# må det gerne betragtes, som en hyldest til Ubuntu-Danmark.dk og de hjælpere,
# som dagligt arbejder på at gøre de mest utrolige heroglyffer brugbare for
# almindelige mennesker. Det fremgår af scriptet, hvilke underscripts, der hører
# med og hvor disse skal kunne findes.
#
# Vh Jakob77 :)

case $1 in
    'one')
        grep "$2" ~/.bash_history | wc -l
        ;;
    'vis')
        cat ~/.bash_history
        ;;
    'hyplist')
        sort ~/.bash_history | uniq -c | sort -n
        ;;
    'help'|'-h'|'--help')
        echo "Brug: $0 [Kommando [ORD]] - hjælpe til at bruge \"history\"."
        echo ''
        echo 'Flag:'
        echo '  -h, --help     Vis denne hjælpe side'
        echo ''
        echo 'Kommandoer:'
        echo '  one ORD        Hvor hyppigt er et bestemt ord er blevet anvendt'
        echo '  vis            Vis hele kommandohistorien i terminalen'
        echo '  hyplist        Hitliste over terminalkommandoers anvendelse'
        echo '  history        Hvor hyppigt er en bestemt kommando blevet anvendt'
        echo '  help           Vis denne hjælpe side'
        ;;
    'history'|*)
        history
        ;;
esac


Som du kan se er det meget renere og mere overskueligt når man bruger en fil, særligt når scriptet ikke gør mere end her.
Du slipper også for meget kludder og problemer ved ikke at køre koden som sub kommandoer (echo echo).

Brug af else (|) og default (*) gør også koden meget enklere.
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

Jakob77 skrev:zged.sh

Kode: Vælg alt

#!/bin/bash

# Grundstammen i dette script er skaffet til veje via Ubuntu-Danmark.dk
# http://ubuntudanmark.dk/forum/viewtopic.php?p=39956#p39956
#
# Scriptet åbner filer i gedit med kommandoen se --help for brug af argumentet.

case $arg in
    'e')
        gedit "~/bin/$2"
        ;;
    'ze')
        gedit "~/bin/$2" "~/bin/zutil/$2" "~/bin/zutil/zsubutil/$2" "~/bin/zutil/zdokumenter/$2"
        ;;
    'g'|'ged')
        gedit ~/bin/ged
        ;;
    'h2'|'his2')
        gedit ~/bin/his2
        ;;
    'd'|'dokument')
        gedit "~/bin/zutil/zdokumenter/$2"
        ;;
    '-h'|'--help'|'help')
        echo "Brug: $0 [Kommando [FILNAVN]] - Åbnen filer i gedit."
        echo "      $0 FILNAVN"
        echo ''
        echo 'Flag:'
        echo '  -h, --help            Vis denne hjælpe side'
        echo ''
        echo 'Kommandoer:'
        echo '  e FILNAVN             Åbner FILNAVN fra ~/bin'
        echo '  ze FILNAVN            Åbner FILNAVN fra ~/bin, ~/bin/zutil, ~/bin/zutil/zsubutil'
        echo '                        og ~/bin/zutil/zdokumenter'
        echo '  g|ged                 Åbner ~/bin/ged'
        echo '  h2|his2               Åbner his2 og tilhørende underscripts)'
        echo '  d|dokument FILNAVN    Opretter eller åbner dokumentet fra'
        echo '                        ~/bin/zutil/zdokumenter'
        echo '  help                  Vis denne hjælpe side'
        ;;
    *)
        gedit %U
        ;;
esac

At undlade kode der ikke er klar hjælper også på overskueligheden.

Ved også at skrive script på en sparet linje end koden for case bliver det også som var det helt normalt og linjerne starter ens.

$0 gør at scriptet viser det faktiske navn på sig selv frem for hvad du måske hade ønsket i starten.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hjælpescripts til Ubuntu

Indlæg af Jakob77 »

@AJenbo

Mange tak. :)
Der er nogle ting i det, som vi skal diskutere, men jeg skal læse noget mere på det først.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hjælpescripts til Ubuntu

Indlæg af Jakob77 »

@AJenbo

Jeg sidder bare og stirrer på koden. Det er utroligt, at så få linjer kan virke så overvældende. Stakkels dig, da du læste mit første gang.

Jeg kan ikke engang gennemskue endnu, hvor stor forskel, der er.
Det er lidt ærgerligt, at du har pillet de ekstra funktioner ud ud af ged, så jeg ikke kan se, hvordan scriptet håndterer flere kommandoer til samme argument.
Med hensyn til his2 tegner du i mine øjne en kæmpe forbedring, hvis det hele kan puttes ind i kun et enkelt script. Og er det samme paradigme, du benytter i begge scripts, så er jeg bange for, at jeg bliver nødsaget til at overgive mig.
Kan du også kalde underscripts og få dem til at virke med moderscriptet, hvis du vil..?

Men der er også noget andet, som er meget vigtigt at udvikle på, synes jeg. Og det er brugervenligheden af selve scriptet.
I det stykke, hvor en amatør uden forkundskaber skal rette noget i et script, så kan det være en stor hjælp med noget vejledende tekst.
Derfor må jeg spørge dig, om der er en sikkerhedsrisiko forbundet med at lægge tekst ind på en linje efter et "# " ..?
For er det kun for ikke at genere ham, som skal kontrollere koden, så ved du nok godt, hvad jeg vil sige. :)
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

Ja man kan fint kalde underscripts.

For at se hvordan du køre flere kkommandoer ud fra 1 parameter kan du se på help funktionerne de kalder en 5-10 kommandoer for at tegne hjælpe teksten.

Kommentar i koden ville være fint.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hjælpescripts til Ubuntu

Indlæg af Jakob77 »

@AJenbo

Tak, der er noget at gå i gang med og arbejde videre på. :)
Men jeg har tænkt lidt mere over situationen som helhed, og jeg tror hellere, at jeg fra min side må pause min deltagelse.
Hjælpescripts er ganske vist en meget vigtig sag at arbejde på, men jeg har ikke råd til at risikere en bandlysning fra forum, fordi jeg kommer til at taste en forkert kode, og det kommer jeg nok nemmere til, når jeg skal eksperimentere med at indkøre et nyt moderscript.
Det er ikke et pædagogisk heldigt tidspunkt, men jeg skal igen samle noget mod først.
Jeg håber dog, at andre fortsætter, og så skal jeg nok komme igen og kritisere det, hvis jeg synes, at nogen i mellemtiden har misrøgtet vores allesammens ged indespærret i virtualboxen.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hjælpescripts til Ubuntu

Indlæg af Jakob77 »

@AJenbo

Hvis jeg finder mod til at fortsætte, og ged kommer helskindet ud af karantænen, så har jeg måske en idé til noget sjovt og godt, som vi kan prøve.
Når vi diskuterer scripts, teknik og muligheder, så mener jeg nok, at moderscriptet fra dig er bedre, end det jeg har brugt til ged, blandt andet fordi det kan køre underscripts.
Men når vi diskuterer brugervenlighed, så tror jeg måske, at den gamle ged er at foretrække.
Jamen, skal vi da så egentlig ikke bare lade brugerne afgøre, om det gamle paradigme fortsat skal være i drift i zutil, eller om vi hellere skal arbejde på at konvertere det hele til det nye paradigme..?

Hvis vi f.eks. hver især optimerer et script til firefox i en brugervenlig udgave, så kan vi opstille begge scripts til en konkurrence i en tråd, og så kan brugerne afgøre, hvilket script de synes, det er nemmest at hitte rundt i og rette foretrukne links i osv.

Jeg tror måske, at det kan blive et lille delprojekt, som alle parter kan have godt af. Jeg vil have godt af det, fordi det vil give mig mere indsigt i det nye paradigme, og hvordan det styres. Læserne vil have godt af det, fordi det er godt for ansvarsfølelsen at blive spurgt, og jeg tror faktisk også, at du og nogle andre hard core kodere vil have godt af det.
Jeg tror i hvert fald, at når vi er færdige, så vil det være temmelig tydeligt for alle, at det, vi har brug for til zutil, det er sevfølgelig sikkre scripts, men det er ikke scripts med en lækkert opstillet gennemskuelig kode, som er optimeret til at blive godkendt på github, og påstande om uigennemskuelig kode, fordi der er sat tekstforklaring ind, de vil med et z krølle sammen og forstumme.

Kan du følge mine tanker om dette..?

Nu er frøet i hvert fald sået, og så vil jeg gå videre ud i haven og forsøge at eksperimentere med at så nogle gulerødder. :)
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hjælpescripts til Ubuntu

Indlæg af AJenbo »

De skulle gerne fungere på samme måde, men hvis det er pga. du syndes der mangler mere hjælpe tekst så kan du jo blot tilføje nogle flere tekst linjer.