Sida 1 av 1

Skript för skärmdumpar

Postat: 02 jun 2008, 00:32
av Xappe
Hej!

Slängde ihop ett litet bashskript för att ta skärmdump, skapa thumbnail och ladda upp det på min webserver med scp. Det spottar även ur sig bbcode för att visa dumpen med tumnagel på forum.

Krav: scrot

Kod: Markera allt

#!/bin/bash
scrn="$1"
thumb="${1%.*}-thumb.${1##*.}"
scrot -t20 "$scrn"
scp "$scrn" "$thumb" användarnamn@serveradress:/sökväg/till/webbkatalog/
echo "[url=http://serveradress/$scrn]"
echo "[img]http://serveradress/$thumb[/img]"
echo "[/url]"

rm "$scrn" "$thumb"
Ändra "användarnamn" och "serveradress" (och sökvägen på servern såklart) så det passar din server.

Användning:

Kod: Markera allt

skriptnamn filnamn.png
Hoppas det kommer till användning för någon iaf. :)
Tack Konservburk för bidragen!

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 01:03
av Konservburk
Du bör verkligen dubbelfnutta dina variabler, dvs använd "$1" istället för $1. Det är A och O när det gäller skalskript.

Eftersom scrot kan göra thumbnails på egen hand så kan du skippa imagemagick helt och hållet.

Kod: Markera allt

scrot -t20 "$1"
istället för

Kod: Markera allt

scrot $scrn
cp $scrn thumb-$scrn
mogrify -resize 20% thumb-$scrn

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 01:21
av Xappe
Ja, nu har jag fnuttat skriptet i första posten. :)

I vilka fall skulle mitt skript ovan inte fungera utan fnuttar? Har hittills inte haft några problem med det även fast jag vet att man bör fnutta variabler.

Vad gäller scrot, så visste jag att den kan göra tumnaglar själv. Men om jag låter scrot göra tumnagel, hur får jag då tumnagelfilen som variabel för scp? Scrot lägger ju till -thumb till filnamnet för filändelsen vilket försvårar det hela.

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 01:51
av Konservburk
Xappe skrev:I vilka fall skulle mitt skript ovan inte fungera utan fnuttar? Har hittills inte haft några problem med det även fast jag vet att man bör fnutta variabler.
Det blir problem när variabeln (filnamnet i det här fallet) innehåller tecken som har speciell mening för skalet. Det absolut vanligaste man åker dit på är mellanslag i filnamn, men det är långt ifrån det enda problemet.
Xappe skrev:Vad gäller scrot, så visste jag att den kan göra tumnaglar själv. Men om jag låter scrot göra tumnagel, hur får jag då tumnagelfilen som variabel för scp? Scrot lägger ju till -thumb till filnamnet för filändelsen vilket försvårar det hela.
Det tänkte jag inte på att den gör. Det försvårar ju det hela en aning... ett perfekt tillfälle att lära sig hur man hanterar sådant med andra ord ;)

Kod: Markera allt

set hejsan.png
echo "$1" "${1%.*}-thumb.${1##*.}"
"${1%.*}" expanderar till allt innan sista punkten.
"${1##*.}" expanderar till allt efter sista punkten.

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 01:56
av Xappe
Man får tacka för den lilla lektionen. Det där med reguljära uttryck har jag aldrig riktigt fått nåt grepp om. Har en pdf-bok i ämnet, så jag får nog ta och läsa den snart... :)

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 02:03
av Konservburk
Det är inte reguljära uttryck, utan något som kallas "Parameter Expansion". Kolla i skalets manualblad om du veta exakt hur det fungerar.

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 02:10
av Xappe
aha, men det liknar reguljära uttryck på nåt vis. :)

Skriptet uppdaterat i första posten.

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 06:58
av Konservburk
Xappe skrev:Skriptet uppdaterat i första posten.
Jag ser att du råkat göra ett misstag när det gäller fnuttandet...

Kod: Markera allt

echo "[url=http://serveradress/"$scrn"]"
Detta innebär att "[url=http://serveradress/" och "]" är fnuttat, men inte $scrn. Borde vara så här istället:

Kod: Markera allt

echo "[url=http://serveradress/$scrn]"

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 07:25
av Konservburk
Sen kan jag också undra varför du ger ett variablenamn till den enkla "$1", men inte till den betydligt mer komplicerade "${1%.*}-thumb.${1##*.}"?

Kod: Markera allt

scrn="$1"
thumb="${1%.*}-thumb.${1##*.}"

Re: Skript för skärmdumpar

Postat: 02 jun 2008, 13:05
av Xappe
haha, du är då aldrig nöjd. :)
<edit> uppdaterat första posten igen</edit>