Topolinux Forum

Versione completa: [SCRIPT - Bash] Scelta_Ambiente_Grafico
Sta attualmente guardando una versione leggera del Forum. Guarda la versione completa per una corretta formattazione.
CIAO

Ho fatto questo script:

Codice PHP:
#!/bin/bash
# Script che permette di scegliere, tramite un numero, l'ambiente grafico da utilizzare.
Nome_host=`w $USER|grep $USER|awk '{print $3}'`
Options="Kde Gnome Esci"
# Determina se l'account viene usato in locale o da remoto.
if [ "$Nome_host" "-" ]; then
# Seleziona l'ambiente grafico da usare se l'account viene usato in locale.
    
select opt in $Options; do
        if [ 
"$opt" "Kde" ]; then
           xinit 
/usr/bin/startkde
        elif 
"$opt" "Gnome" ]; then
           xinit 
/usr/bin/gnome-session
        elif 
"$opt" "Esci" ]; then
           
exit
        else
           echo 
Selezionare un numero.
        
fi
     done
else
# Seleziona l'ambiente grafico da usare se l'account viene usato da remoto.
    
select opt in $Options; do
        if [ 
"$opt" "Kde" ]; then
           xinit 
/usr/bin/startkde &
        
elif "$opt" "Gnome" ]; then
           xinit 
/usr/bin/gnome-session &
        
elif "$opt" "Esci" ]; then
           
exit
        else
           echo 
Selezionare un numero.
        
fi
     done
fi 


ed a quanto pare funziona sia da locale che da remoto. L'unico problema e` che, in entrambi i casi, quando termino una sessione grafica, mi compare di nuovo il menu` testuale di scelta dell'ambiente grafico invece di uscire dallo script. Come mai?

E` possibile semplificare la struttura di questo script in modo da renderlo il piu` lineare possibile. se si`, come?

GRAZIE

CIAO

Ehu io ci avrei anche dato un'occhiata fosse indentato , cosė purtroppo č pių lo sbattimento di leggere cosa c'č scritto e di capire che altro. Credo sia una cosa importante quando si rende pubblico un pezzo di codice, cosė si evita agli altri di perderci troppo tempo. E' solo un consiglio, non prenderla come una critica fine a se stessa :D
E se al posto dell'exit qui

Codice:
elif [ "$opt" = "Esci" ]; then
exit

mettessi

Codice:
elif [ "$opt" = "Esci" ]; then
killall "nomedelloscript

cosė sei sicuro che il processo viene ucciso.

@stonedz:
Lo script č indentato, č il tag [code] che ne cambia la formattazione.

ho modificato il tag da "code" a "php".
Certo il codice č shell script, ma cosė almeno si vede l'indentazione.

Ciao
Chiedo scusa, non sapevo del problema del tag :D
Ho trovato un modo per risolvere tutti i vari problemi:

Codice PHP:
#!/bin/bash
# Script che permette di scegliere, tramite un numero, l'ambiente grafico da utilizzare.
Nome_host=`w $USER|grep $USER|awk '{print $3}'`
Options="Kde Gnome Exit"
# Determina se l'account viene usato in locale o da remoto.
if [ "$Nome_host" "-" ]; then
# Seleziona l'ambiente grafico da usare se l'account viene usato in locale.
    
select Opt in $Options; do
        case 
$Opt in
            
'Kde')
                
xinit /usr/bin/startkde
                
exit 0
                
;;
            
'Gnome')
                
xinit /usr/bin/gnome-session
                
exit 0
                
;;
            
'Exit')
                exit 
0
                
;;
            *)
                echo 
Selezionare un numero.
                ;;
        
esac
     done
else
# Seleziona l'ambiente grafico da usare se l'account viene usato da remoto.
    
select Opt in $Options; do
        case 
$Opt in
            
'Kde')
                
xinit /usr/bin/startkde &
                exit 
0
                
;;
            
'Gnome')
                
xinit /usr/bin/gnome-session &
                exit 
0
                
;;
            
'Exit')
                exit 
0
                
;;
            *)
                echo 
Selezionare un numero.
                ;;
        
esac
     done
fi 


Cosa vi pare?

GRAZIE

CIAO

URL di riferimento