Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
suggerimento script gentoo
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Thu Jul 19, 2018 5:59 am    Post subject: Reply with quote

mi faccio una ricerca su case statement
che non conosco e non ho mai usato

se devo riscrivere qualcosa mi piacerebbe usare case statement.

-quando usersò elif , comedevo fare con fi ?
basta un endif oppure devo chiudere con fi moltiplicato if?
Back to top
View user's profile Send private message
sabayonino
Veteran
Veteran


Joined: 03 Jan 2012
Posts: 1008

PostPosted: Thu Jul 19, 2018 10:00 am    Post subject: Reply with quote

case stantment è "case". te l'ho anche scritto con un esempio

idem con esempio per

if
elif
elif
[...]
fi

o

if
elif
elif
[...]
else
fi

i "if , else , fi " troppo nidificati possono portare a problemi di logica e sono brutti da vedere :mrgreen: (poi...degustibus)

devi ragionare in cascata...
_________________
LRS i586 on G.Drive
LRS x86-64 EFI on MEGA
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Thu Jul 19, 2018 12:53 pm    Post subject: Reply with quote

manca solo
Code:
if [[ -z $REPLY ]] ; then
           echo "scelta non valida"
fi

che non ho capito come impostarlo

TRIGG.sh GENTOO TERMINAL MANAGER

dopo non so se mancano altri comandi gentoo di base che sto ignorando completamente
Back to top
View user's profile Send private message
antonellocaroli
Guru
Guru


Joined: 11 Aug 2016
Posts: 503

PostPosted: Thu Jul 19, 2018 1:57 pm    Post subject: Reply with quote

ciao
questo é un esempio di una funzione per una scelta di un valore, dando una corrispondenza sbagliata t avvisa che non ahi scelto bene e ti rimanda alla scelta

Code:
function select_sample_rate() {
  declare -a rates=(   \
   '44100'      \
   '48000'      \
   '88200'      \
   '96000'      \
   '176400'   \
   '192000'   \
   '352800'   \
   '384000'   \
  )
  # no existing hardware support for '705600' and '768000'.
  if [ "$1" == "" ]; then
    local prompt='Selezionare un sample rate:'
  else
    local prompt="$1"
  fi
  sample_rate=""
  while [ "$sample_rate" == "" ]
  do
    clear
    echo -e "\n$prompt\n"
    for (( i = 0 ; i < ${#rates[@]} ; i++ ))
    do
      echo -e "$i) \t${rates[$i]}";
    done
    echo
    read -p 'Digitare il numero corrispondente e premere invio: ' choice
    echo
    if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -lt ${#rates[@]} ]; then
      sample_rate="${rates[$choice]}"
      echo -e "Scelta effettuata: '$sample_rate'\n"
      read -s -N1 -p 'Confermare e procedere? (s/N)'
      clear
      echo
      [ "$REPLY" != "s" ] && sample_rate=""
    else
      echo -e "\a\nErrore: digitare un numero compreso tra 0 e $[ ${#rates[@]}-1 ]."
      pausa
    fi
  done
}


questo un esempio per il controllo dell'utente

Code:
function run_as_root() {
  [ "$(whoami)" == "root" ] || {
    echo -e '\a\nATTENZIONE: questo script deve essere eseguito dal "SuperUser" (utente root).'
    exec su -c "$0"
  }
}



questa la pausa che viene richiamate quando serve

Code:
function pausa() {
  echo
  read -s -p 'Premere "Invio" per continuare...'
  clear
  echo
}



spero ti possono essere da spunto
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Thu Jul 19, 2018 5:35 pm    Post subject: Reply with quote

ciao antonello
ho letto più volte lo script

e mi son perso qui
Code:
 for (( i = 0 ; i < ${#rates[@]} ; i++ ))


non conosco i caratteri speciali come ++
e non ho ancora chiaro il significato di i z n

però sto imparando
approfondirò lo script per capire di più :)
Back to top
View user's profile Send private message
sabayonino
Veteran
Veteran


Joined: 03 Jan 2012
Posts: 1008

PostPosted: Thu Jul 19, 2018 6:06 pm    Post subject: Reply with quote

tipica punteggiature del C++

equivale a

Code:
for i in ${rates[@]} ; do [...] ; done


o comunemente detti cicli

Code:
for i in 1 2 3 4 5 ; do echo $i ; done
1
2
3
4
5



Code:
for e in {0..5} ; do echo $e ; done
0
1
2
3
4
5


Code:
for t in mio tuo suo loro ; do echo $t ; done
mio
tuo
suo
loro


In una cartella contenente *.mp3
Code:
for i in *.mp3 ; do echo $i ; done
01_tunderstruck.mp3
02_bruce_springsteen_the_river.mp3
05_dire_straits_on_every_streets.mp3


di modi ce ne sono parecchi



function run_as_root () {
codice
}

come scritto in precedenza ,è la dichiarazioe di funzione delle vecchie versioni di bash , seppur ancora compatibili , attualmente
Code:
run_as_root ()
codice
}

_________________
LRS i586 on G.Drive
LRS x86-64 EFI on MEGA
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Thu Jul 19, 2018 7:14 pm    Post subject: Reply with quote

Quote:
n una cartella contenente *.mp3
Codice:
for i in *.mp3 ; do echo $i ; done
01_tunderstruck.mp3
02_bruce_springsteen_the_river.mp3
05_dire_straits_on_every_streets.mp3


quindi lo potrei usare per cercare file per estensione e catalogarli
è la prima cosa che mi è venuta in mente

forse la più semplice :cry:

quindi quando leggo for n è come leggere for x

oppure ci sono lettere che hanno un valore/significato definito :?
Back to top
View user's profile Send private message
sabayonino
Veteran
Veteran


Joined: 03 Jan 2012
Posts: 1008

PostPosted: Thu Jul 19, 2018 7:44 pm    Post subject: Reply with quote

"n" "x" "ciccio" , sono solo delle variabili che prenderanno un determinato valore all'interno del ciclo.

conta da 1 a 5

Code:
for i in {1..5} ; do echo $i ; done


for : inizio ciclo
i : imposta la variabile "i" a prendere il primo valore
in : all'interno dell'espressione che segue (nell'esempio : 1)
do echo $i : stampane il relativo valore (1)
done ; fine del primo ciclo , prosegui aumentando "i" al valore successivo (2)
riprende il for ... e via così

ci possono essere esemi più complessi

imposta la Matrice A
A=(1,2,3,4,5)
Code:
 for  ciccio in ${A[@]} ; do echo $ciccio ; done

stampa in sequenza i valori della matrice (dal primo all'ultimo) utilizando "ciccio" come variabile
A[0] = 1
A[1] = 2
...

Stampa elenco direcotry vuote della cartella home (l'esempio non ha senso perchè basta il solo comando find , ma è per rendere l'idea
Code:
for d in "$(find /home/user -type d -empty)" ; do echo $d ; done

_________________
LRS i586 on G.Drive
LRS x86-64 EFI on MEGA
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Thu Jul 19, 2018 8:01 pm    Post subject: Reply with quote

ricevuto

grazie sabayonino

mi sarà più facile leggere i tutorial e vabbè chissà quando farò uno script bello e complesso

intanto ci provo :)
Back to top
View user's profile Send private message
sabayonino
Veteran
Veteran


Joined: 03 Jan 2012
Posts: 1008

PostPosted: Thu Jul 19, 2018 8:21 pm    Post subject: Reply with quote

sul web di esempi ce ne sono una montagna

https://www.cyberciti.biz/faq/bash-for-loop/
https://www.tutorialkart.com/bash-shell-scripting/bash-for-loop/
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html
...

cerca "for statement" (dichiarazione per "for")
_________________
LRS i586 on G.Drive
LRS x86-64 EFI on MEGA
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Fri Jul 20, 2018 1:31 pm    Post subject: Reply with quote

https://paste.pound-python.org/show/Rvb8f1O0PXQEAsTIs2xT/

sopra il link dello script

ho aggiunto il comando per layman nella sezione Installa Rimuovi App

di seguito le istruzioni aggiunte

:)

Code:
4)
echo -e " Vuoi Aggiungere una voce Overlays?
Premi [S] per confermare , un'altro tasto per proseguire :>"
read -sn 1
if [ "$REPLY" = "s" -o  "$REPLY" = "S" ]
   then
read -p "aggiungi Overlay >" overlays
a="layman -a  $overlays"
for i in  "$a"
do
$i
done
echo "Voce correttamente aggiunta"
read -p "Indica Categoria/Pacchetto da Installare >" install
b="emerge --ask $install"
for c in "$b"
do
$c
done
else
read -p "Indica Categoria/Pacchetto da Installare >" instal
bb="emerge --ask $instal"
 for d in "$bb"
 do
 $d 
 done
fi
;;
Back to top
View user's profile Send private message
sabayonino
Veteran
Veteran


Joined: 03 Jan 2012
Posts: 1008

PostPosted: Fri Jul 20, 2018 6:10 pm    Post subject: Reply with quote

Code:
 if [[ "${REPLY}" == [Ss][Ii] || ${REPLY} == [Ss] ]] ; then ....


Accetta tutte le combinazioni "Si" "SI" "si" "sI" o di "S" "s"

http://mywiki.wooledge.org/BashFAQ/031
http://mywiki.wooledge.org/ArithmeticExpression
_________________
LRS i586 on G.Drive
LRS x86-64 EFI on MEGA


Last edited by sabayonino on Fri Jul 20, 2018 8:34 pm; edited 4 times in total
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Fri Jul 20, 2018 6:13 pm    Post subject: Reply with quote

a proposito di layman

ho notato che con eix quando cerco un pacchetto
ricevo una lista infinita di pacchetti

quindi preferisco ogni volta eliminare il repository una volta installato il pacchetto

di conseguenza ho modificato il mio script
così

Code:
4)
echo -e " Vuoi Aggiungere una voce Overlays?
Premi [S] per confermare , un'altro tasto per proseguire :>"
read -sn 1
if [ "$REPLY" = "s" -o  "$REPLY" = "S" ]
   then
read -p "aggiungi Overlay >" overlays
a="layman -a  $overlays"
for i in  "$a"
do
$i
done
echo "Voce correttamente aggiunta"
layman -S
echo "Voce correttamente aggiornata"
read -p "Indica Categoria/Pacchetto da Installare >" install
b="emerge --ask $install"
for c in "$b"
do
$c
done
echo -e " Vuoi rimuovere la voce Overlays aggiunta prima?
Premi [Y] per confermare , un'altro tasto per proseguire :>"
read -sn 1
if [ "$REPLY" = "y" -o  "$REPLY" = "Y" ]
   then
layman -d $overlays
echo -e "Overlays rimosso correttamente"
else
app
fi
else
read -p "Indica Categoria/Pacchetto da Installare >" instal
bb="emerge --ask $instal"
 for d in "$bb"
 do
 $d 
 done
fi
 
echo
echo -e "${YELLOW} !!! ESEGUITO !!! "
echo
echo -e "${LCYAN} premi un tasto per continuare" ; read -n1 ; app ;;


cos' da poter eliminare il repository ed avere più controllo sui pacchetti.

anche se avrei voluto impostare lo script in con questa logica

Code:
 echo -e " Vuoi Aggiungere una voce Overlays? premi invio se non vuoi aggiungerlo altrimenti scrivi il repository da aggiungere

che dovrebbe tradursi in
if [ "$1" == "" ]; then
passa ad installare
altrimenti aggiungi repo
Back to top
View user's profile Send private message
sabayonino
Veteran
Veteran


Joined: 03 Jan 2012
Posts: 1008

PostPosted: Fri Jul 20, 2018 6:19 pm    Post subject: Reply with quote

ricevi più pacchetti perchè le stesse versioni di un pacchetto possono essere presenti sia in portage che in overlay , magari con USE differenti oppure per questioni di dipendenze
Non ha senso rimuoverlo. se aggiorni "eix" rimuovi anche l'elenco pacchetti dell'overlay

"eix" permette la ricerca anche nel singolo overlay

ti suggerisco di leggere l'help di "eix"

Code:
 -O, --overlay                    Match packages from overlays
    --in-overlay OVERLAY             Match packages from OVERLAY

_________________
LRS i586 on G.Drive
LRS x86-64 EFI on MEGA
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Sat Jul 21, 2018 8:04 am    Post subject: Reply with quote

quante cose ci sono da sapere su gentoo .

una domanda su sabayon
quando ho usato sabayon , la mia critica a riguardo era il fatto che non disponeva di molti pacchetti
ad esempio youtibedl-gui

se uso questo script per sabayon
non usando rigo , entropy ed equo
ma usando solo emerge e portage cosa succede?

la domanda vera è
posso utilizzare overlay in sabayon usando layman ?

ad esempio questo è youtube-del-gui
http://gpo.zugaina.org/media-sound/mps-youtube
il repository riguradano gentoo e funtoo


e questo è il repo di sabayon
http://gpo.zugaina.org/Overlays/sabayon-distro
ma non c'è youtube-dl-gui


se uso lo script per sabayon cosa succede?
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 30838
Location: here

PostPosted: Sat Jul 21, 2018 8:56 am    Post subject: Reply with quote

Non posso aiutarti con sabayon non l'ho mai usata.
Per questioni di sabayon ti chiedo di aprire un thread nel Forum di discussione italiano visto che qui ci vanno solo le discussioni riguardanti Gentoo.
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
sabayonino
Veteran
Veteran


Joined: 03 Jan 2012
Posts: 1008

PostPosted: Sat Jul 21, 2018 11:02 am    Post subject: Reply with quote

Qui andiamo OT ,
Sabayon ha un suo forum di assistenza , IRC e Wiki.
L'utilizzo di portage è possibile ma non è ufficialmente supportato nel senso che puoi ritrovarti con nessuno che ti dia una mano se non ti sai districare nelle situazioni che ne vengono fuori
Il package manager ufficiale è Entropy
Layman ,Portage ,rpm,installazione da sorgenti ... tutto è possibile.
https://wiki.sabayon.org/index.php?title=HOWTO:_Safely_mix_Entropy_and_Portage
_________________
LRS i586 on G.Drive
LRS x86-64 EFI on MEGA
Back to top
View user's profile Send private message
trigg
Apprentice
Apprentice


Joined: 14 Jun 2018
Posts: 179

PostPosted: Sun Jul 22, 2018 5:13 pm    Post subject: Reply with quote

una piccola modifica :)

Code:
echo "devi prima scaricare l'ebuild"
echo "premi un tasto per continuare" ; read -n1
cd /home/trigg/Scaricati/

read -p "Indica categoria/pacchetto :>" dir

mkdir -p /usr/local/portage/$dir

for ebld in *.ebuild
do

cp $ebld /usr/local/portage/$dir
mv $ebld /mnt/DATI/gentoo/'installazione gentoo'/ebuild/
cd /usr/local/portage/$dir

repoman manifest

emerge --ask $dir
done


adesso basterà solo scaricare l'ebuild ed indicare categoria/pacchetto

inoltre è stata aggiunta l'opzione etc-update qualora fosse richiesta

di seguito il link

trigger gentoo termianl manager update

per sabayon ok , è solo che è stata la distro che mi ha avvicinato a linux 3 o 4 anni fa
dovrei avere ancora il cd che non sono mai riuscito a far partire , così son passato a kubuntu

a settembre con il ritorno del fresco ho l'intenzione di installare sabayon e vabbè se dovrò far domande le farò sul forum di sabayon
Back to top
View user's profile Send private message
zar Marco
Guru
Guru


Joined: 09 Sep 2016
Posts: 445
Location: Colle Umberto ( TV )

PostPosted: Mon Oct 08, 2018 3:04 am    Post subject: Reply with quote

Ero curioso di provare il tuo script, graficamente è gratificante.

Per ora sembra fatto molto bene, mi riservo di provarlo un pò in questi giorni, ma sembra proprio un ottimo lavoro
Back to top
View user's profile Send private message
zar Marco
Guru
Guru


Joined: 09 Sep 2016
Posts: 445
Location: Colle Umberto ( TV )

PostPosted: Sun Dec 09, 2018 2:00 pm    Post subject: Reply with quote

Sto smanettando un po' con il tuo script, è fatto molto bene, ho provato ad aggiunger,e l'aggiornamento del portage tree in cerca app, ma è una rindondanza.
Poi volevo sapere se era possibile inserire la ricerca di eix via categorie, e sono riuscito, però effettivamente non è molto utile senza autocompletamento. Secondo voi è possibile implementare tale funzione in uno script?

A titolo puramente informativo, non voglio rubare il lavoro di nessuno
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum