Repository 32bit  Forum
Repository 64bit  Wiki

Script bash

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Script bash

Messaggioda escher » sab dic 01, 2012 20:28

Salve a tutti, ho una domanda (forse banale) da provi. So che tutto ciò che viene avviato all'inizio in Slackware sta in rc.d, vorrei sapere dove posso mettere uno script in bash che ho appena creato. Correggetemi se sbaglio.
Uso fluxbox quindi potrei scrivere il comando dello script (con una & alla fine) in ~/.fluxbox, così si avvierà in background appena starta fluxbox.
E' meglio metterlo in rc.d o nella directory di fluxbox?


Grazie delle eventuali risposte :)
escher
Linux 1.0
Linux 1.0
 
Messaggi: 55
Iscritto il: lun set 24, 2012 18:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggioda joseph » sab dic 01, 2012 21:14

Guarda dipende cosa fa lo script...
In ogni caso se sono comandi di sistema conviene metterli sempre in rc.d
oltrettutto puoi inserire il path del tuo script in "rc.local" 8)
Avatar utente
joseph
Linux 2.4
Linux 2.4
 
Messaggi: 205
Iscritto il: lun giu 14, 2010 22:50
Località: Salerno
Slackware: 13.37
Kernel: 3.2.9
Desktop: xfce

Re: Script bash

Messaggioda escher » sab dic 01, 2012 21:23

Grazie delle risposta, lo script deve solo controllare quanta batteria ancora rimane e se è inferiore al 10% stampa una roba sul terminale. In pratica sta in background (in loop) finchè non va sotto il 10%.
escher
Linux 1.0
Linux 1.0
 
Messaggi: 55
Iscritto il: lun set 24, 2012 18:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggioda targzeta » dom dic 02, 2012 1:07

escher ha scritto:Grazie delle risposta, lo script deve solo controllare quanta batteria ancora rimane e se è inferiore al 10% stampa una roba sul terminale. In pratica sta in background (in loop) finchè non va sotto il 10%.

I loop sono brutte bestie e finché non ne hai veramente bisogno dovresti evitarli. Nel tuo caso puoi evitarli semplicemente mettendo il tuo script sotto il controllo di 'acpid', datti una lettura al manuale. In particolare acpid è in ascolti di eventi di questa ed altra natura che vengono inviati dal kernel, quindi, quando la batteria è sotto una certa soglia il kernel emette un evento che viene raccolto dal acpid e tu puoi dire a lui di eseguire qualsiasi cosa tu voglia. Guardati anche il contenuto della directory '/etc/acpi/'.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6166
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Script bash

Messaggioda miklos » dom dic 02, 2012 1:22

come ti è stato suggerito dipende dal tipo di script.

solitamente in rc.d si mettono gli script che devono essere eseguiti non tanto all'avvio del sistema(perchè questo è assodato) ma script che necessitano di privilegi di root visto che, nel contesto di avvio, fino alla richiesta di login l'utente 'vivo' è root.

poi devi anche distinguere fra script ad-hoc dell'utente e script che vorresti fossero eseguiti per tutti gli utenti (anche se tipicamente in una macchina desktop ne hai due, root e il tuo) e solo nel momento in cui viene fatto il login.

in quest'ultimo caso io prediligerei la directory
Codice: Seleziona tutto
/etc/profile.d
qui' dentro infatti, ci sono tutti gli script che vengono eseguiti ad ogni singolo login e sono svincolati dal fatto che tu debba usare un ambiente grafico oppure no(che nn credo sia il tuo caso visto che parli sempre e comunque di notifiche tramite terminale)

se invece ti serve da eseguire un qualcosa in ambiente grafico, dipende dal windows manager che utilizzi, fermo restando che su slackware se modifichi i corrispondenti file all'interno di
Codice: Seleziona tutto
/etc/X11/xinit/
riesci ad ottenere agevolmente l'inserimento di script all'avvio di un qualunque windows manager.

spero di essere stato utile :)

EDIT:
I loop sono brutte bestie e finché non ne hai veramente bisogno dovresti evitarli.
non l'ho capita.. su linux qualunque software che finisce con la 'd' implementa un loop
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1211
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: Script bash

Messaggioda targzeta » dom dic 02, 2012 1:36

miklos ha scritto:EDIT:
I loop sono brutte bestie e finché non ne hai veramente bisogno dovresti evitarli.
non l'ho capita.. su linux qualunque software che finisce con la 'd' implementa un loop
Sì, forse mi sono spiegato male. Io parlo dei loop "attivi", quelli che ti mandano la cpu a mille, per intenderci. Infatti io spiegavo un metodo per essere avvisati quando un evento si verifica piuttosto che andare noi a vedere ogni tot se l'evento si è verificato.

Oh, sono pure l'una di notte :lol:,
Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6166
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Script bash

Messaggioda escher » dom dic 02, 2012 12:22

Grazie mille a tutti delle risposte, mi avete dato buoni spunti , vedrò cosa posso fare.

Grazie ancora! :)
escher
Linux 1.0
Linux 1.0
 
Messaggi: 55
Iscritto il: lun set 24, 2012 18:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggioda joseph » mar dic 04, 2012 10:21

Se poi vuoi fare proprio il figo ti puoi installare "conky" e gli butti dentro la riga per il controllo della batteria come nel mio caso:

Codice: Seleziona tutto
${offset 0}${color slate gray}Batteria: ${color }${battery_percent BAT0}% (${battery_time BAT0})
${offset 0}${color slate gray}${battery_bar 10,180 BAT0}


La prima riga ti dice la percentuale della batteria, la seconda ti da proprio la barra grafica cosi ti rendi conto sempre dello stato della batteria,
oltretutto potresti inserire anche degli avvisi acustici.
Guardati un pò conky 8)
Avatar utente
joseph
Linux 2.4
Linux 2.4
 
Messaggi: 205
Iscritto il: lun giu 14, 2010 22:50
Località: Salerno
Slackware: 13.37
Kernel: 3.2.9
Desktop: xfce

Re: Script bash

Messaggioda RedSkull92 » mar dic 04, 2012 16:02

Io ho fatto una cosa simile per la mia slackware, è molto rudimentale.
https://gist.github.com/4204883
Ovviamente concordo con targzeta riguardo ai loop, darò anche io una occhiata.
Ho messo lo script nella mia home e l'ho fatto richiamare dal rc.local
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Script bash

Messaggioda escher » mar dic 04, 2012 19:45

Io ho fatto solo il controllo della batteria. Già che c'ero potevo farlo anche della temperatura come hai fatto tu ..vabè :P
https://github.com/0Nabla/Powerlevel/bl ... r/power.sh
escher
Linux 1.0
Linux 1.0
 
Messaggi: 55
Iscritto il: lun set 24, 2012 18:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggioda RedSkull92 » mar dic 04, 2012 20:02

Da dove lo fai richiamare ?
Ogni quanto ?
Non pensi che un "echo" sia poco ? Magari navighi e non te ne accorgi.
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Script bash

Messaggioda escher » mar dic 04, 2012 20:41

Se la quantità di batteria è inferiore al 10% scrive sulla shell. Si forse è un po' poco..hai ragione. Tu dove lo fai richiamare?
Per me va bene che appaia solo sul terminale tanto uso principalmente quello visto che il mio laptop è datato. Però per gli altri vorrei che apparisse una finestrella sulla destra con scritto tutto come se fosse una notifica..
Forse devo dare un occhiata a dbus-launch o notify-osd vedrò :)
escher
Linux 1.0
Linux 1.0
 
Messaggi: 55
Iscritto il: lun set 24, 2012 18:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggioda RedSkull92 » mer dic 05, 2012 0:27

Io ho messo il tutto nel rc.local e controllo ogni 5 secondi.
Io ho usato x-message un pop-up che appare al centro dello schermo per avvertire l'utente
Avatar utente
RedSkull92
Linux 2.6
Linux 2.6
 
Messaggi: 553
Iscritto il: mar apr 21, 2009 16:25
Località: Palermo
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox

Re: Script bash

Messaggioda escher » mer dic 05, 2012 19:14

Ah si anche il pop-up al centro dello schermo non è male. Grazie ! :)

Ps: Ho già conky sulla destra configurato :)
escher
Linux 1.0
Linux 1.0
 
Messaggi: 55
Iscritto il: lun set 24, 2012 18:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite