Autore Topic: I vostri script  (Letto 4978 volte)

Offline Hombremaledicto

  • *
  • Post: 520
  • Reputazione: 40
  • Ma chi ti si incula
    • Mostra profilo
    • Hombre on DA
I vostri script
« il: 20 Novembre 2012 ore 18:34 »
Qualche tempo fa aprii un topic per chiedere aiuto su come iniziare a programmare, quali linguaggi e quali testi usare. Fu un argomento caldo per molti giorni, tanto che si aprì anche una discussione affine, sugli script bash.

Qui sul forum di Chakra vedo ogni tanto alcuni utenti  postare degli script, spesso proponendoli in soccorso a dei problemi riscontrati, o aprendo un  topic dedicato, tanto per discuterne.

Recentemente, ho iniziato anche io a studiare bash scripting, e sfogliando quelli pubblicati tra queste pagine mi sono trovato a pensare:
perchè non aprire uno spazio dove condividere quelli che abbiamo creato?
Potrebbe servire a molti. che, come il sottoscritto sentono il bisogno di praticare, e arricchire la propria esperienza, Ma non solo, sarebbe un indice dove trovare strumenti per diversi problemi, affinare la tecnica, o consigliare  trucchi utili...
Che ne pensate?  :)

« Ultima modifica: 20 Novembre 2012 ore 18:37 da Hombremaledicto »
Keep it rolling, baby...

Offline andreazube

  • *
  • Post: 1595
  • Reputazione: 64
  • I AM THE INTERSECT
    • Mostra profilo
    • Lupo mannaro
Re:I vostri script
« Risposta #1 il: 20 Novembre 2012 ore 19:19 »
Probabilmente sarò il più scarso del forum  :-[ però forse questo è degno di nota
NOTA:al momento c'è un problema nella fase dove devi aggiornare il sistema (fase saltabile e/o fattibile "a mano").Il problema è già risolto e aspetto solo che elias (xfce italia) carichi la versione corretta perchè io non riesco a usare bene dropbox  >:(

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:I vostri script
« Risposta #2 il: 20 Novembre 2012 ore 19:25 »
hombre, mi becchi proprio nel mentre :-)

sto affinando il programma (motion) per la visione in remoto delle telecamere di sorveglianza.
Mi appoggio ad un paio di script. Vorrei proporre alcune cose che ho scoperto/imparato riguardo a bash in questa "avventura":

1- monitorare il contenuto di una directory e fare qualcosa se cambia (non lo uso più, ma è stato carino farlo):
Codice: [Seleziona]
#!/bin/sh
# watchfolder: check for changes in folder, then call playalarm

check() {
    dir="$1"
    echo monitoring folder $dir
   
    chsum1=`ls -l $dir | md5sum`
    chsum2=$chsum1
    while [ "$chsum1" == "$chsum2" ]; do
      # folder doesn't changed
        sleep 5
        chsum2=`ls -l $dir | md5sum`
    done
    # folder changed!
    echo "Change in monitored folder!"
    ./playalarm &
    kdialog --msgbox "allarme attivato. OK per spegnere"
    killall playalarm
}

while [ : ]; do   
   check $*
done

Mettere il volume al massimo, ripetere il suono fino a che non si accetta l'ok della popup:
Codice: [Seleziona]
#!/bin/bash
# playalarm: play a wav file at maximum volume forever

#####################################################################
# Get current volume.
function get_volume()
{
    mixer=$(amixer get Master | grep 'Front Left:')
    echo $mixer | cut -d ' ' -f 4
}


#####################################################################
# Set volume.
function set_volume()
{
    amixer cset iface=MIXER,name="Master Playback Volume" $1 >/dev/null
}

if [[ $(basename $0 .sh) == 'playalarm' ]]; then
    sound_file=~/Dropbox/scripts/alarm.wav
    if [[ "$1" ]]; then sound_file="$1"; fi

    ovol=$(get_volume)

    vol=9999999
    echo "Playing at: $vol"
    set_volume $vol

    while [ : ] ; do
aplay $sound_file
    done

    echo "Resetting volume to: $ovol"
    set_volume $ovol
fi

Trovare il proprio ip pubblico, salvarlo su file, inserirlo in un file html da pubblicare, postarlo via ftp su un sito web (purtroppo solo l'ftp ho a disposizione). Lo lancio con cron ogni 10 minuti, non si sa mai cada la connessione e cambi ip address:
Codice: [Seleziona]
#!/bin/bash
# saveip
wget http://automation.whatismyip.com/n09230945.asp  -O /home/user/ipaddress.txt -o /dev/null
IPADD=$(cat /home/user/ipaddress.txt)
#echo $IPADD

sed 's/SERVERADDR/'$IPADD'/g' /home/user/scripts/scheletro.sample > /home/user/telecamere.html


USERNAME="UUU"
PASSWORD="PPP"
SERVER="ftp.sitoweb.it"
DIR="privato"
FILE="/home/user/telecamere.html"

wput -uA -nv $FILE ftp://$USERNAME:$PASSWORD@$SERVER/$DIR/telecamere.html

EDIT: Mancava questo
Lanciare un programma solo se non è già in esecuzione (in questo caso ho paciugato un po' xè ho hardcodato alcune cose x farlo funzionare, ma si potrebbe sistemare):
Codice: [Seleziona]
SERVICE="motion"
RESULT=`ps -a | grep -v grep | grep -v motion-start | grep -v kate | grep ${SERVICE}`
echo $RESULT
if [ "$RESULT" == ""  ]
then
  /usr/bin/motion -m -c "/home/dino/.motion/motion.conf"
else
  echo "motion-start is already running"
fi%   

Si accettano consigli, si forniscono dettagli  ;D

« Ultima modifica: 20 Novembre 2012 ore 19:30 da dinolib »

Offline Hombremaledicto

  • *
  • Post: 520
  • Reputazione: 40
  • Ma chi ti si incula
    • Mostra profilo
    • Hombre on DA
Re:I vostri script
« Risposta #3 il: 20 Novembre 2012 ore 19:37 »
La discussione è stata ufficialmente inaugurata  :beer:

@andreazube: è uno script utilissimo, l'avevo visto su lffl, gran colpo!
Poi, il più scarso sono io qui, chiariamolo  :-[

@dinolib: figata  :o
Ecco,  ora mi divertirò a studiacchiarli.
Soprattutto il primo che hai postato, che mi torna utile in questo periodo.


Ne aggiungo uno mio (come dicevo, sono agli inizi, terra terra) che lancia una finestra di kdialog per cercare su google, realizzato come esercizio due giorni fa. Malgrado sia totalmente insignificante è diventato il mio preferito, l'ho legato alla combinazione di tasti  alt + g (che ormai premo ripetutamente come uno psicopatico) :

Codice: [Seleziona]
#!/bin/bash

##########################################
# Semplice script per cercare su google                             
# tramite kdialog. Opzione inutile,                                       
#  visto che krunner ha l'opzione gg...                                   
##########################################


SOMETHING=$(kdialog --title "Google search" --inputbox "Type something:" "Let me search for you...");
if [ "$?" = 0 ]
 then
   firefox "https://www.google.com/search?q=$SOMETHING";
   elif [ "$?" = 1 ]; then
kdialog --msgbox "Doh!!";

   fi;
« Ultima modifica: 20 Novembre 2012 ore 19:52 da Hombremaledicto »
Keep it rolling, baby...

Offline andreazube

  • *
  • Post: 1595
  • Reputazione: 64
  • I AM THE INTERSECT
    • Mostra profilo
    • Lupo mannaro
Re:I vostri script
« Risposta #4 il: 20 Novembre 2012 ore 20:07 »
Hombre: si avvia kdialog ma poi da
Codice: [Seleziona]
./hombre: line 17: syntax error: unexpected end of file ???
In ogni caso dovresti mettere "exit" alla fine,credo  :)

Offline Hombremaledicto

  • *
  • Post: 520
  • Reputazione: 40
  • Ma chi ti si incula
    • Mostra profilo
    • Hombre on DA
Re:I vostri script
« Risposta #5 il: 20 Novembre 2012 ore 20:16 »
Hombre: si avvia kdialog ma poi da
Codice: [Seleziona]
./hombre: line 17: syntax error: unexpected end of file ???
In ogni caso dovresti mettere "exit" alla fine,credo  :)

Oh lol  :P correggo subito. grazie!

Strano a me non da alcun problema ??? ho appena controllato.
Prova a togliere il ';' all'ultima riga,

« Ultima modifica: 20 Novembre 2012 ore 20:24 da Hombremaledicto »
Keep it rolling, baby...

Offline andreazube

  • *
  • Post: 1595
  • Reputazione: 64
  • I AM THE INTERSECT
    • Mostra profilo
    • Lupo mannaro
Re:I vostri script
« Risposta #6 il: 20 Novembre 2012 ore 20:38 »
Oh lol  :P correggo subito. grazie!

Strano a me non da alcun problema ??? ho appena controllato.
Prova a togliere il ';' all'ultima riga,
Non cambia niente...per me è il mio pc che è maledetto  ;D Ma ho notato che la riga si può spostare se aggiungo spazi o lo stesso exit,indica una riga vuota subito dopo l'ultima riga dello script  ???

Offline Hombremaledicto

  • *
  • Post: 520
  • Reputazione: 40
  • Ma chi ti si incula
    • Mostra profilo
    • Hombre on DA
Re:I vostri script
« Risposta #7 il: 20 Novembre 2012 ore 20:52 »
Non cambia niente...per me è il mio pc che è maledetto  ;D Ma ho notato che la riga si può spostare se aggiungo spazi o lo stesso exit,indica una riga vuota subito dopo l'ultima riga dello script  ???

Beh, il problema mi intriga. Il guaio è che nel tentativo di risolverlo potrei farti detonare il pc....;D

Te lo riposto, corretto:

Codice: [Seleziona]
#!/bin/bash

##########################################
# Semplice script per cercare su google  #
# tramite kdialog. Opzione inutile,      #
# visto che krunner ha l'opzione gg...   #
##########################################


SOMETHING=$(kdialog --title "Google search" --inputbox "Type something:" "Let me search for you...");
if [ "$?" = 0 ]; then
   firefox "https://www.google.com/search?q=$SOMETHING";
   elif [ "$?" = 1 ]; then
kdialog --msgbox "Doh!!";
   
 fi
 
 exit 0;

Se non funge....Prova con questo clone del precedente (esegue la ricerca, ma su wikipedia) :

Codice: [Seleziona]
#!/bin/bash



SOMETHING=$(kdialog --title "Wikipedia" --inputbox "Type something:" "Let me search for you...");
if [ "$?" = 0 ]; then
   firefox "http://en.wikipedia.org/wiki/$SOMETHING";
   
   
   fi
   
   exit 0;

Un PC maledetto è più evoluto di un Hombremaledicto, può darsi abbia ragione lui.
« Ultima modifica: 20 Novembre 2012 ore 20:56 da Hombremaledicto »
Keep it rolling, baby...

Offline elvis

  • *
  • Post: 136
  • Reputazione: 9
    • Mostra profilo
Re:I vostri script
« Risposta #8 il: 20 Novembre 2012 ore 23:54 »
Beh, il problema mi intriga. Il guaio è che nel tentativo di risolverlo potrei farti detonare il pc....;D

Te lo riposto, corretto:

Codice: [Seleziona]
#!/bin/bash

##########################################
# Semplice script per cercare su google  #
# tramite kdialog. Opzione inutile,      #
# visto che krunner ha l'opzione gg...   #
##########################################


SOMETHING=$(kdialog --title "Google search" --inputbox "Type something:" "Let me search for you...");
if [ "$?" = 0 ]; then
   firefox "https://www.google.com/search?q=$SOMETHING";
   elif [ "$?" = 1 ]; then
kdialog --msgbox "Doh!!";
   
 fi
 
 exit 0;
I punti e virgola non servono alla fine dei comandi, anzi probabile che siano loro a creare casini  ;D
Pc Config
--phenom x4 965 @ 3.4 ghz
--corsair 8GB ddr3
--nvidia gtx 460
--ocz agility 3 60GB (chakra)
--crucial m4 128GB (windows 8.1)

TheImmortalPhoenix

Re:I vostri script
« Risposta #9 il: 21 Novembre 2012 ore 00:32 »
Riproduce con mplayer qualsiasi video flash, dovete farlo caricare e metterlo in pausa, una volta caricato tutto il buffer potete anche chiudere il browser, potete anche caricare più video contemporaneamente

Codice: [Seleziona]
#!/bin/sh

mplayer $(lsof -p `ps x | awk '/libflashplayer.so\ /{print $1}'` -n 2>/dev/null | perl -lne '@F = split(/ +/, $_, 9); print "/proc/$F[1]/fd/${\($F[3] =~ /(^\d+)/)[0]}" if $F[4] eq "REG" && $F[8] =~ /\(deleted\)$/')


Offline dongongo

  • *
  • Post: 445
  • Reputazione: 16
    • Mostra profilo
Re:I vostri script
« Risposta #10 il: 21 Novembre 2012 ore 09:59 »
Non male questa sezione. Io non so fare script, però vi chiedo una mano, su uno che mi interesserebbe, non so se è possibile crearlo. Mi piacerebbe avere uno script che permetta di non far spegnere lo schermo quando c'è un applicazione massimizzata a schermo intero.
Tutte le domeniche, quando guardo le partite (collego il pc al proiettore ;D) in streaming, adagiato sul divano, mi tocca andare sui settaggi e togliere lo spegnimento automatico dello schermo (che tra l'altro a volte fa le bizze e continua a spegnersi) altrimenti ogni 5 minuti mi tocca alzarmi per riaccenderlo. Ecco, se fosse possibile creare uno script per non far spegnere lo schermo quando c'è un'applicazione (in questo caso il plugin di flash) massimizzata a schermo intero sarebbe spettacolare... ;D



Offline blupenguin

  • *
  • Post: 366
  • Reputazione: 23
    • Mostra profilo
Re:I vostri script
« Risposta #11 il: 21 Novembre 2012 ore 10:03 »
Probabilmente sarò il più scarso del forum  :-[ però forse questo è degno di nota
NOTA:al momento c'è un problema nella fase dove devi aggiornare il sistema (fase saltabile e/o fattibile "a mano").Il problema è già risolto e aspetto solo che elias (xfce italia) carichi la versione corretta perchè io non riesco a usare bene dropbox  >:(

Semplicemente fantastico!!
Un bel modo per risparmiare tempo e sbattimenti di configurazione con arch.
Ora mi hai fatto venir voglia di reinstallarla sulla partizione in cui ancora conservo i suoi resti.

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:I vostri script
« Risposta #12 il: 21 Novembre 2012 ore 10:10 »
Mi piacerebbe avere uno script che permetta di non far spegnere lo schermo quando c'è un applicazione massimizzata a schermo intero.

Con un programmino in Qt si potrebbe. Da bash capire se ci sono finestre in full screen non saprei...
Di sicuro si può fare uno shortcut ad uno script che cambia le impostazioni dello spegnimento schermo. Se una sera ho tempo ci guardo. OK?  ;D

Offline dongongo

  • *
  • Post: 445
  • Reputazione: 16
    • Mostra profilo
Re:I vostri script
« Risposta #13 il: 21 Novembre 2012 ore 10:17 »
Sei un mito dino! Grazie! ;D



Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:I vostri script
« Risposta #14 il: 21 Novembre 2012 ore 10:26 »
Sei un mito dino! Grazie! ;D
aspetta a gioire che almeno faccia qualcosa  :P

 

Template by Homey | Sito ufficiale | Disclaimer