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.
Rispondi
escher
Linux 0.x
Linux 0.x
Messaggi: 55
Iscritto il: lun 24 set 2012, 19:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Script bash

Messaggio da escher »

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 :)

Avatar utente
joseph
Linux 2.x
Linux 2.x
Messaggi: 206
Iscritto il: lun 14 giu 2010, 23:50
Slackware: 15.0
Kernel: 5.15.27
Desktop: xfce
Località: Salerno

Re: Script bash

Messaggio da joseph »

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)

escher
Linux 0.x
Linux 0.x
Messaggi: 55
Iscritto il: lun 24 set 2012, 19:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggio da escher »

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%.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6628
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Script bash

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

ilmich
Master
Master
Messaggi: 1645
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: Script bash

Messaggio da ilmich »

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
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6628
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Script bash

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

escher
Linux 0.x
Linux 0.x
Messaggi: 55
Iscritto il: lun 24 set 2012, 19:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggio da escher »

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

Grazie ancora! :)

Avatar utente
joseph
Linux 2.x
Linux 2.x
Messaggi: 206
Iscritto il: lun 14 giu 2010, 23:50
Slackware: 15.0
Kernel: 5.15.27
Desktop: xfce
Località: Salerno

Re: Script bash

Messaggio da joseph »

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
RedSkull92
Linux 3.x
Linux 3.x
Messaggi: 567
Iscritto il: mar 21 apr 2009, 17:25
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox
Località: Palermo
Contatta:

Re: Script bash

Messaggio da RedSkull92 »

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

escher
Linux 0.x
Linux 0.x
Messaggi: 55
Iscritto il: lun 24 set 2012, 19:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggio da escher »

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

Avatar utente
RedSkull92
Linux 3.x
Linux 3.x
Messaggi: 567
Iscritto il: mar 21 apr 2009, 17:25
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox
Località: Palermo
Contatta:

Re: Script bash

Messaggio da RedSkull92 »

Da dove lo fai richiamare ?
Ogni quanto ?
Non pensi che un "echo" sia poco ? Magari navighi e non te ne accorgi.

escher
Linux 0.x
Linux 0.x
Messaggi: 55
Iscritto il: lun 24 set 2012, 19:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggio da escher »

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ò :)

Avatar utente
RedSkull92
Linux 3.x
Linux 3.x
Messaggi: 567
Iscritto il: mar 21 apr 2009, 17:25
Slackware: 64bit -current
Kernel: 3.5.4
Desktop: FluxBox
Località: Palermo
Contatta:

Re: Script bash

Messaggio da RedSkull92 »

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

escher
Linux 0.x
Linux 0.x
Messaggi: 55
Iscritto il: lun 24 set 2012, 19:08
Slackware: 13.1
Kernel: 2.6
Desktop: fluxbox

Re: Script bash

Messaggio da escher »

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

Ps: Ho già conky sulla destra configurato :)

Avatar utente
Linpassion
Linux 2.x
Linux 2.x
Messaggi: 336
Iscritto il: mar 30 ott 2012, 11:17
Slackware: 14.2
Desktop: xfce, fluxbox

Re: Script bash

Messaggio da Linpassion »

se devi controllare lo status della batteria, personalmente userei o gtkrelm oppure conky, entrambi versatili, ma il secondo piu flessibile e pulito.

Rispondi