Kirjoittaja Aihe: Pienet näppärät scriptit (bash, python, perl yms.)  (Luettu 120097 kertaa)

UbunTux

  • Käyttäjä
  • Viestejä: 2046
  • KubunTux
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #160 : 04.04.09 - klo:22.27 »
Saisiko jotenkin scriptin että: avaa firefoxin, pitää päällä pari sekunttia, samuttaa firefoxin, käynnistää hetken päästä taas firefoxin uudelleen ja sitä rataa.. ja tekisi tätä vaikka niin pitkään kuin toisin sanotaan  ???

Koodia: [Valitse]
#!/bin/bash
while [ 1 ] ; do
  firefox&
  pid=$!
  sleep 2
  kill -TERM  $pid
done
?
Tuossa 2 s ei ikkuna kerkeä edes ilmestymään minulla.

Yhtenä rivinä
Koodia: [Valitse]
while [ 1 ] ; do   firefox&   pid=$! ;   sleep 2;   kill -TERM  $pid; done  :P
« Viimeksi muokattu: 04.04.09 - klo:22.42 kirjoittanut UbunTux »
KDE neon
Uudempaa KDE:tä Ubuntulla

adjektiivi

  • Käyttäjä
  • Viestejä: 315
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #161 : 04.04.09 - klo:22.46 »
Saisiko jotenkin scriptin että: avaa firefoxin, pitää päällä pari sekunttia, samuttaa firefoxin, käynnistää hetken päästä taas firefoxin uudelleen ja sitä rataa.. ja tekisi tätä vaikka niin pitkään kuin toisin sanotaan  ???

Koodia: [Valitse]
#!/bin/bash
while [ 1 ] ; do
  firefox&
  pid=$!
  sleep 2
  kill -TERM  $pid
done
?
Tuossa 2 s ei ikkuna kerkeä edes ilmestymään minulla.

Yhtenä rivinä
Koodia: [Valitse]
while [ 1 ] ; do   firefox&   pid=$! ;   sleep 2;   kill -TERM  $pid; done  :P

Tuo ei sammuta firefoxia ollenkaan, se käynnistää vain monta?

UbunTux

  • Käyttäjä
  • Viestejä: 2046
  • KubunTux
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #162 : 04.04.09 - klo:22.58 »
Saisiko jotenkin scriptin että: avaa firefoxin, pitää päällä pari sekunttia, samuttaa firefoxin, käynnistää hetken päästä taas firefoxin uudelleen ja sitä rataa.. ja tekisi tätä vaikka niin pitkään kuin toisin sanotaan  ???

Koodia: [Valitse]
#!/bin/bash
while [ 1 ] ; do
  firefox&
  pid=$!
  sleep 2
  kill -TERM  $pid
done
?
Tuossa 2 s ei ikkuna kerkeä edes ilmestymään minulla.

Yhtenä rivinä
Koodia: [Valitse]
while [ 1 ] ; do   firefox&   pid=$! ;   sleep 2;   kill -TERM  $pid; done  :P

Tuo ei sammuta firefoxia ollenkaan, se käynnistää vain monta?
Sulje kaikki firefoxin prosessit aluksi.
KDE neon
Uudempaa KDE:tä Ubuntulla

adjektiivi

  • Käyttäjä
  • Viestejä: 315
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #163 : 04.04.09 - klo:23.02 »
Saisiko jotenkin scriptin että: avaa firefoxin, pitää päällä pari sekunttia, samuttaa firefoxin, käynnistää hetken päästä taas firefoxin uudelleen ja sitä rataa.. ja tekisi tätä vaikka niin pitkään kuin toisin sanotaan  ???

Koodia: [Valitse]
#!/bin/bash
while [ 1 ] ; do
  firefox&
  pid=$!
  sleep 2
  kill -TERM  $pid
done
?
Tuossa 2 s ei ikkuna kerkeä edes ilmestymään minulla.

Yhtenä rivinä
Koodia: [Valitse]
while [ 1 ] ; do   firefox&   pid=$! ;   sleep 2;   kill -TERM  $pid; done  :P

Tuo ei sammuta firefoxia ollenkaan, se käynnistää vain monta?
Sulje kaikki firefoxin prosessit aluksi.

Kiitoksia!   :)

beh

  • Käyttäjä
  • Viestejä: 154
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #164 : 05.04.09 - klo:12.27 »
Yhtenä rivinä
Koodia: [Valitse]
while [ 1 ] ; do   firefox&   pid=$! ;   sleep 2;   kill -TERM  $pid; done  :P
Pienenä kuriositeettina, bashissa on true -komento, jolla saa hieman siistimmän päättymättömä loopin. (while true ...)

SuperOscar

  • Käyttäjä
  • Viestejä: 4060
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #165 : 18.08.09 - klo:19.26 »
Herätetäänpä ketju...

Oheinen skripti tuli tehtyä, kun jouduin kaiken aikaa asentelemaan yhtä konetta uudelleen. Skripti lukee tiedostosta, mitä paketteja koneelle pitää asentaa, ja asentaa ne. Aptitude on helppo vaihtaa zypperiin tai yumiin; totta kai ongelmaksi tulevat myös distrosta toiseen vaihtuvat pakettien nimet, mutta tämä on kierrettävissä luomalla useita eri lähdetiedostoja.

Skripti nopeuttaa kuitenkin kummasti koneen käyttöönottoa – siis jollei ole päässyt luomaan omaa asennuslevyään tai käyttämään varsin lupaavalta näyttävää SUSE Studiota!

Pitäisi vielä keksiä, miten shiftiä käyttäen voisi saada skriptin lukemaan useampia komentorivillä annettuja tiedostoja.

Koodia: [Valitse]
#!/bin/sh
# -----------
# mustinstall
# -----------
# Skripti lukee parametrina annetusta tiedostosta, mitä paketteja
# koneelle pitää asentaa. Tiedostossa annetaan paketti kullakin rivillä,
# rivi voi sisältää myös #-merkin edeltämiä kommentteja.
#
# 18.8.2009 / Viimeisin muutos (TN).

if [ -z "$1" ]; then
    echo $0: Käyttö: mustinstall TSTO
    exit 1
fi

if [ -r "$1" ]; then
    echo mustinstall: Luetaan tiedostoa "$1"
    while read pkg; do
        pkg=`echo ${pkg} | sed "/#/ d"`
        if [ -n "${pkg}" ]; then
            dpkg-query -l ${pkg} > /dev/null 2>&1
            if [ $? -ne 0 ]; then
                must="${must} ${pkg}"
            fi
        fi
    done < "$1"
    echo mustinstall: Asennetaan ${must} riippuvuksineen
    sudo aptitude install ${must}
else
    echo mustinstall: Tiedostoa ei löydy tai sitä ei voi lukea: "$1"
fi

Itse luettava tiedosto, joka parametrina skriptille annetaan, näyttää esim. tältä:

Koodia: [Valitse]
#
# Välttämättömät apuohjelmat
#
zsh
unison
unison-gtk
#
# Palomuurin hallinta
#
guarddog
#
# Palvelut
#
openssh-server
#
# TeX
#
texlive-full
scalable-cyrfonts-tex
kile
#
# Ohjelmointi
#
idle
#
# Multimedia ja grafiikka
#
kubuntu-restricted-extras
dvdauthor
imagemagick
mjpegtools
inkscape
krita-kde4
#
# Pelit
#
kdegames
pysol
pysol-cardsets

Muoks: Viime vaiheessa mukaan hupsahtanut bugi korjattu.
« Viimeksi muokattu: 18.08.09 - klo:19.40 kirjoittanut SuperOscar »
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

Jiku

  • Käyttäjä
  • Viestejä: 248
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #166 : 21.08.09 - klo:12.54 »
Kyllästyin noihin rippausohjelmien valikko-hässäköihin ja tein skriptin joka käyttää VLC:tä ja lsdvd:tä rippaamaan DVD:n dreamboxin digiboksille sopivaan muotoon poltetuilla teksteillä.
Tämä on vielä vaiheessa oleva ja tarkoitus olisi tälle tehdä graafinen käyttöliittymä jotenkin, jos jaksaa/viitsii/keksii miten.
noita $komento -parametrejä muokkaamalla VLC:n voi komentaa rippaamaan johonkin muuhunkin muotoon.

Kaikenlaiset muutokset ja ideat on enemmän kuin tervetulleita!

Koodia: [Valitse]
#!/bin/bash
vhakemisto="/home/jani/share/" #muista loppuun /-merkki

#####################################################################
#                                                                   #
# Ripppaa DVD:ltä pyydetyt raidat Dreamboxilla toimivaksi mpg:ksi   #
#                                                                   #
# Tarvittavat ohjelmat: lsdvd, vlc, beep                            #
#                                                                   #
#####################################################################

#levyn nimen etsiminen
vnimi=`lsdvd -q 2>/dev/null |grep Disc|cut -c 13-`
vnimi=$vhakemisto$vnimi.mpg



clear
# pisimmän titlen etsiminen ja titlen valinta
pisin=`lsdvd -q 2>/dev/null|grep Longest |cut -c 16-18`
pisin=`echo $pisin|bc` #pisin title
echo "TITLET"
echo Pisin title on $pisin.
read -p "Valitse title: " vtitle
echo


# listataan tekstitysraidat
clear
echo "TEKSTITYS"
`lsdvd -q -t $vtitle -s >tekstit 2>/dev/null`
lrivi=0
cat tekstit | while read line; do
lrivi=`expr $lrivi + 1`;
if   [ $lrivi -gt 2 ] ;then
echo $line |cut -c 11-72;
fi
done;
read -p "Valitse tekstitysraita: " vtekstitysraita
vtekstitysraita=`echo $vtekstitysraita -1|bc` #vähennetään raidan numerosta 1




# listataan ääniraidat
clear
echo "ÄÄNIRAIDAT"
`lsdvd -q -t $pisin -a >audiot 2>/dev/null`
lrivi=0
cat audiot |cut -c 8-100| while read line; do
lrivi=`expr $lrivi + 1`;
if   [ $lrivi -gt 2 ];then
echo $line |cut -c 1-40;
fi
done;
read -p "Valitse ääniraita: " vaaniraita
vaaniraita=`echo $vaaniraita -1|bc` #vähennetään raidan numerosta 1
komento='vlc --play-and-exit -I dummy -vvv dvdsimple://@'$vtitle' --audio-track='$vaaniraita' --sub-track='$vtekstitysraita' --sout="#transcode{vcodec=mp2v,vb=2048,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync,soverlay,scale=0.5}:standard{dst='$vnimi',access=file}"'

echo $komento>komento
sh komento
rm audiot tekstit komento
echo "Valmista tuli"
beep

edit0: audion koodauksessa pikkuinen moka.

edit1: Graafinen versio Zenityllä. Sellaista purkkaa että M$ jää toiseksi ;)
« Viimeksi muokattu: 22.08.09 - klo:16.53 kirjoittanut Jiku »
Puoliksi suunniteltu on hyvin tehty

Jiku

  • Käyttäjä
  • Viestejä: 248
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #167 : 15.12.09 - klo:19.18 »
Yritin etsiä valmista tickeriä, joka näyttäisi näytöllä itse määrättyjä tietoja. En löytänyt niin purkkavirittelin itse.
Laitoin apunäytön yläkulmaan paneelin jonka taustavärin laitoin mustaksi.
Sitten gnome-osd-properties :lla siirsin OSD-tekstien näytön kyseisen paneelin päälle.

Skripti hakee viiden minuutin välein tiehallinnon sivuilta paikallisen sään. Säätilan lisäksi skripti näyttää tällä hetkellä paljonko katsomattomia valvontakameran tallenteita on.
kohdan "#tulostellaan näytölle tiedot" jälkeen niitä voi lisäillä ja poistella miten haluaa.

apuskripti "viesti" helpottaa viestin tulostamista näytölle (muuta fontti sellaiseksi joka on asennettu koneelle)
/bin/viesti
Koodia: [Valitse]
#!/bin/bash
#käyttö: viesti <sekunnit> <väri> <"viesti>
#viesti 3 yellow "moi moi"
aika=`echo $1*1000|bc`

gnome-osd-client -f "<message id='viesti' hide_timeout='$aika' osd_fake_translucent_bg='off'><span font='Tiresias Infofont 18' foreground='$2' >$3</span></message>"

/bin/infopalkki
Koodia: [Valitse]
#!/bin/bash
viimeisin="00:00"
viive=5 #sekuntia
nuku=6 #sekuntia
COUNTER=0
         while [  $COUNTER -lt 10 ]; do
             
#VERRATAAN AIKAA
nyt=`date +%H:%M`
nytd=`date +%s -d"$nyt"`
viimeisind=`date +%s -d"$viimeisin"`
ero=`echo "($nytd - $viimeisind) /60" |bc`



#JOS KULUNUT n MINUUTTIA...
if [ $ero -ge 5 ] || [ $ero -lt 0 ];
then

#haetaan netistä:
#***************LOPEN SÄÄ****************
wget http://alk.tiehallinto.fi/alk/kelikamerat/kamera-C0451702.html -O /tmp/loppi 2>/dev/null
cat /tmp/loppi |grep deg >/tmp/loppi2
#ilma
string=`cat /tmp/loppi2 |grep 45%`
str=${string#*004e61\"\>}
ilma=${str%\ \&deg*}
#tie
string=`cat /tmp/loppi2 |grep -ve 45%`
str=${string#*004e61\"\>}
tie=${str%\ \&deg*}
#säätiedotuksen aika
string=`cat /tmp/loppi |grep TAMMELA`
str=${string#*TAMMELA\ }
saaaika=${str%\<\/B\>*}
#*************/LOPEN SÄÄ***************

viimeisin=`date +%H:%M`
fi

#tulostellaan näytölle tiedot
kamera=`ls -1 /www/motion/cam/swf/ |wc -l`
viesti 7 white "$ilma°   tie: $tie°   ($saaaika)"
sleep 8



viesti 2 white "$nyt     Cam:$kamera"
sleep 3





 
         done
Puoliksi suunniteltu on hyvin tehty

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #168 : 16.12.09 - klo:00.07 »
Joku voisi tehdä skriptin, joka ensimmäisellä ajokerralla
1) luo kotihakemistoon kansion openttd
2) asentaa paketit git-core git-svn
3) lataa openttd:n uusimman trunk buildin git-svn:ää käyttäen
4) asentaa openttd:n kääntämiseen tarvittavat paketit
5) siirtää kansion ~/openttd/os/debian yhtä tasoa ylemmäksi

Seuraavilla suorituskerroilla
1) varmistaa, että kotikansiossa on kansio openttd ja että kääntämiseen tarvittavat riippuvuudet on asennettu
2) siirtyy kansioon openttd
3) päivittää kansion sisällön käyttäen seuraavia komentoja:
Koodia: [Valitse]
git stash
git svn rebase
git stash apply
git stash clear
4) tarkistaa, onko openttd:n trunk muuttunut
5) Jos on, kysytään käyttäjällä, haluaako hän luoda deb-paketin. Paketti luodaan kansiossa ~/openttd komennolla:
Koodia: [Valitse]
dpkg-buildpackage -rfakeroot -uc -us

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #169 : 12.01.12 - klo:19.04 »
Nostetaanpas tätä aihetta, kun tuli kirjoitettua uusi, yllättävän näppärä, scripti. Kaverit vähän esittelivät AutoIt:llä tekemäänsä kuvankaappausohjelmaansa, niin minä ajattelin näyttää miten se tehdää Unix-tyylillä.

Eli tämä scripti ottaa kuvan halutusta työpöydän osasta (scrot:illa), tallentaa sen Dropboxin kansioon ja sitten laittaa Public-linkin leikepöydälle (käyttää siihen xclip:ä). Sen voi sitten liittää minne haluaa. Idea on lisätä tämä scripti pikanäppäimeksi työpöytäympäristöön, jotta sitä voi helposti käyttää.

Testattu vain Arch Linuxilla toistaiseksi, mutta pitäisi toimia mainiosti muissakin.
Käyttö, levittäminen ja muokkaus täysin vapaata.
http://dl.dropbox.com/u/4305182/etc/scrottaa.sh

Muokkaus: Poistin liitteen, koska tilani loppui.
« Viimeksi muokattu: 04.09.12 - klo:22.31 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

vellu@vmach

  • Käyttäjä
  • Viestejä: 348
  • Kiroitusvirheitä jo vuodesta feisty
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #170 : 16.01.12 - klo:23.22 »
Nostetaanpas tätä aihetta, kun tuli kirjoitettua uusi, yllättävän näppärä, scripti. Kaverit vähän esittelivät AutoIt:llä tekemäänsä kuvankaappausohjelmaansa, niin minä ajattelin näyttää miten se tehdää Unix-tyylillä.

Eli tämä scripti ottaa kuvan halutusta työpöydän osasta (scrot:illa), tallentaa sen Dropboxin kansioon ja sitten laittaa Public-linkin leikepöydälle (käyttää siihen xclip:ä). Sen voi sitten liittää minne haluaa. Idea on lisätä tämä scripti pikanäppäimeksi työpöytäympäristöön, jotta sitä voi helposti käyttää.

Testattu vain Arch Linuxilla toistaiseksi, mutta pitäisi toimia mainiosti muissakin.
Käyttö, levittäminen ja muokkaus täysin vapaata.
http://dl.dropbox.com/u/4305182/etc/scrottaa.sh
Olisi näppärä, jos näissä debianeissa(kai ubu ja minttu on myös debianeita?) toimisi näin yksinkertaisesti :
Koodia: [Valitse]
CLIPBOARD='clipboard'Ei ainakaan ota ctrl-v gimpin kanssa, tallettaa kyllä hakemistoon.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #171 : 17.01.12 - klo:01.48 »
Lainaus
Olisi näppärä, jos ........

Kokeilin hieman tätä:

Koodia: [Valitse]
sudo apt-get install xclip
Sitten päätteessä pieni koe:

Koodia: [Valitse]
echo "höpö höpö" | xclip -selection clipboard
Painetaanpas sitten Ctrl-V täällä foorumilla:  höpö höpö

Kulkee ainakin tähän suuntaan.

Kertokaa miten menee toiseen suuntaan tuolla --- lähden nukkumaan välillä  ::)
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #172 : 17.01.12 - klo:09.39 »
Olisi näppärä, jos näissä debianeissa(kai ubu ja minttu on myös debianeita?) toimisi näin yksinkertaisesti :
Koodia: [Valitse]
CLIPBOARD='clipboard'Ei ainakaan ota ctrl-v gimpin kanssa, tallettaa kyllä hakemistoon.
Tuo tosiaan tehdään sillä xclip-komennolla, kuten ajaaskel sanoi ja tuon CLIPBOARD=jotain rivin merkitys on vain valita mitä leikepöytää käyttää (kommentissa lukee). Kokeile tuota scriptiä päätteessä niin näet onko koneeltasi asentamatta joku noista erikoisemmista komennoista mitä tuo käyttää (ainakin jos tein tarkistuksen oikein). Tässä tapauksessa xclip.

Muuten onko joku onnistunut lisäämään tuon pikanäppäimeksi 11.10:n 3D (=perus, ei 2D) Unityyn? Yritin ensin näppäimistön asetuksista, mutta kuulemma ei toimi, koska ei käytä Metacityä ja sitten Compiz config settings managerilla, mutta se ei auttanut sen enempää. KDE:ssä Archilla onnistui helposti.
« Viimeksi muokattu: 17.01.12 - klo:09.41 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #173 : 17.01.12 - klo:12.09 »
Olisi näppärä, jos näissä debianeissa(kai ubu ja minttu on myös debianeita?) toimisi näin yksinkertaisesti :
Koodia: [Valitse]
CLIPBOARD='clipboard'Ei ainakaan ota ctrl-v gimpin kanssa, tallettaa kyllä hakemistoon.
En nyt varmaan ymmärtänyt, mutta jos tässä oli kyse työpöytäkuvan saamisesta leikepöydälle, niin sehän onnistuu PrtScr-näppäimellä. Se ottaa kuvakaappauksen ja sitten tulee kysymys tallennatko/kopioitko leikepöydälle.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #174 : 17.01.12 - klo:16.14 »
Itselleni tuli tuosta mieleen lähinnä kaksisuuntainen kommunikaatio:   bash <---> leikepöytä.  Pikakokeessa sain päätteestä tekstit tulemaan leikepöydälle ja sieltähän niitä voi tiputtaa minne vaan eteenpäin Ctrl-V: n avulla.  Skriptikin voi käyttää leikepöytää tuolla tavalla.
Auki jäi vielä miten tuo kulkee toiseen suuntaan eli miten skripti lukisi leikepöydän sisällön.
   
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #175 : 21.01.12 - klo:14.51 »
Vieläkään en saanut tuota scriptiä lisättyä pikanäppäimeksi Ubuntu 11.10:een, mutta tein siitä päivitetyn version, joka toimii suoraan ja nyt vaatii dropboxin. Edellinen siis toimii ilmankin, mutta vaatii Dropboxin userid:n asettamisen. Vanhan saa vielä tuosta vanhasta viestistäni (liitteenä).

http://dl.dropbox.com/u/4305182/etc/scrottaa.sh

Lisäksi tuo xclip näyttäisi toimivan näin:
Koodia: [Valitse]
tomin@tomin-workstation:~$ echo "Hienoa" | xclip -selection "primary"
tomin@tomin-workstation:~$ xclip -out -selection "primary"
Hienoa
tomin@tomin-workstation:~$
Tätä voi sitten ohjailla minne haluaa bashin normaaleilla ohjauksilla. Vinkkinä kannattaa lukea ohjeet ('xclip -h' ja 'man xclip'). ;)

Poistin liitteen, koska tilani loppui. Pidän kyllä dropboxissa ja kyselläkin saa (yksityisviestillä vaikka) jos tuo ei toimi.
« Viimeksi muokattu: 04.09.12 - klo:22.32 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

Mistofelees

  • Käyttäjä
  • Viestejä: 656
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #176 : 27.01.12 - klo:12.36 »
Eihän sitä erkkikään muista kaikkien erilaisten tar.jotain-pakettien purkamista. Tämän pikku skriptin avulla voi purkaa kaikki .tar, .tar.gz ja tar.bz2 tiedostot ilman kryptisiä optioita. Laita tämä vaikkapa /usr/local/bin/untar nimiseen tiedostoon.

TAR:n kanssa kannattaa opetella myös 'P' -parametrin käyttö. Itse tein scripti-kasan, jonka jouduin levittämään moneen hakemistoon luokan koneissa:

Tehdään kasa:
tar -cvPf kasa.tar /usr/bin/s1.sh /home/bin/s2.pl /usr/local/sbin/s3,sh

Levitetään kasa koneeseen:
tar -xvPf kasa.tar

Tämä ei oikeastaan ole scripti, mutta tulipa mieleen.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #177 : 04.02.12 - klo:18.44 »
Putkitus ja globaali muuttuja:  Vikaa etsin hetken aikaa...
 
Tein nimittäin skriptissä tavalliseen tapaan putkituksen

    komento1 |  komento2

    , jossa komento2 kutsuu edelleen samaisessa skriptissä sijaitsevaa funktiota.

Kaikki toimi muuten hienosti mutta funktion päivittäessä globaalin muuttujan arvoa tuo päivitys meni aina harakoille. Tieto kulki globaalin muuttujan kautta funktiolle päin mutta takaisin päin sieltä ei tullutkaan mitään, globaali muuttuja ei päivittynyt. 

Kahlasin hetken nettiä ja sen perusteella tuo on ominaisuus eikä vika putkitusta käytettäessä.

http://stackoverflow.com/questions/6255303/bash-piping-prevents-global-variable-assignment

eli jos on tarve päivittää jotain globaalia muuttujaa tuolla "putkessa" niin ei onnistu, parempi toteuttaa tuo kohta ilman putkitusta.   
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #178 : 08.02.12 - klo:16.24 »
Koneesi nykyiset ohjelmalähteet esiin yhdellä kertaa:

Koodia: [Valitse]
cd /etc/apt&& find . -name "*.list" | xargs -n 1 cat | grep "deb"&& cd
PS. Tuo ei välttämättä toimi muissa jakeluissa kuin Ubuntu ja "yhteensopivat".



« Viimeksi muokattu: 08.02.12 - klo:16.34 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

vellu@vmach

  • Käyttäjä
  • Viestejä: 348
  • Kiroitusvirheitä jo vuodesta feisty
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #179 : 11.04.12 - klo:15.10 »
Pitkän tauon jälkeen palauttelin mieleeni bashin alkeita ja siitä syntyi yksinkertainen laskuri prossun lämmöille:
Koodia: [Valitse]
#!/bin/bash

# Alku kysymykset ja asetukset
echo "Prossun lämpötilan tilastointi" ;echo ""
echo "Monenko sekunnin välein lämpötila mitataan?" ;read KERRAT
echo "Montako kertaa lämpötilaa tilastoidaan? " ;read VASTAUS
echo "Tiedoston nimi tulosteille (oletus $TIEDOSTO)" ;read TIEDOSTO
MINSAT=$[KERRAT*VASTAUS/60] ; TUNNIT=$[KERRAT*VASTAUS/60/60]

# laskuri
echo " Prosessorin lämmöt $MINSAT minuutin / $TUNNIT tunnin ajalta. Kirjoitetaan tiedostoon $TIEDOSTO"
  for muuttuja in $(seq $VASTAUS)
  do
  echo "Mittauskerta nro: $muuttuja"
  sleep $KERRAT
  sensors |grep temp1 | cut -c 16-19
  sensors |grep temp1 | cut -c 16-19 >> $TIEDOSTO
done
# cat $TIEDOSTO | xargs

Jotta tästä olisi edes jotain hyötyä jollekkin, niin  pitäisi saada laskettua tuloksista keskilämpötila, suurin ja pienin lämpötila. En vain keksi miten syöttää tulokset vaikka qalculatelle tai muulle laskimelle. Tai laskea jollain muulla tavalla.