Visualizzazione dei risultati da 1 a 3 su 3

Discussione: GUI per script, help

  1. #1

    GUI per script, help

    Ho scoperto ora zenity, un ottimo comando che permette di creare un interfaccia grafica per script bash. Stupendo, però mi impallo un po con la sintassi:

    Questo è il solito sirm scritto normalmente per bash:

    codice:
    #!/bin/bash
    
    ###############################################
    #                                             #
    # SIRM2 Script Install & Remove Manager 2.2   #
    #                                             #
    ###############################################
    
    #Crea le cartelle necessarie allo script se non esistono (thanks to vortex87)
    [ -d "$HOME/backup" ] || mkdir $HOME/backup
    [ -d "$HOME/script" ] || mkdir $HOME/script
    
    # Verifica che l'utente abbia permessi di root
    
    ROOT_UID=0 
    
    if [ "$UID" != "$ROOT_UID" ]
     then
     echo "Devi essere root per eseguire questo script."
     exit
    fi  
    
    #Qui sotto le funzioni di sirm2
    
    usage () {
    echo "Questo è l'help di sirm2:
    Una volta avviato, segui le istruzioni per eseguire le operzioni richieste"
    exit 1
    }
    
    #Qui sotto l'utilizzo delle funzioni
    while [[ "$1" != "" ]]; do
    case "$1" in
    "-h" ) usage ;;
    "--help" ) usage ;;
    esac
    shift
    done
    
    #Qui sotto sirm e le sue utilità
    
    echo "SIRM 2.0. Script Install & Remove Manager versione 2.0.3"
    echo "Cosa vuoi fare?"
    echo "1) Installare uno script (deve essre in $HOME/script/)"
    echo "2) Rimouvere uno script"
    echo "3) Fare il backup di uno script in $HOME/backup/ "
    echo "4) Ripristinare uno script salvato in $HOME/backup/ "
    echo "5) Apri uno sript nella cartella $HOME/script/ con un editor di testo"
    echo "6) Uscire"
    echo "Digita il numero corrispondente all'operazione"
    read scelta
    case $scelta in
    1)
       echo "Digita il nome dello script da installare"
       read elencosript
          chmod +x $HOME/script/$elencosript
          cp $HOME/script/$elencosript /usr/local/bin/
          echo "Installati gli script sul tuo computer"
          echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)" 
       ;;
    2)
       echo "Digita il nome dello script da rimuovere"
       read elencosript
          rm  /usr/local/bin/$elencosript
          echo "Rimossi gli script sul tuo computer"
          echo "Fine"  
       ;;
    3)
       echo "Digita il nome dello script (che deve essere in $HOME/script/ )"
       read miofile
       cp $HOME/script/$miofile $HOME/backup/
       echo "Script salvato"
       ;;
    4) 
       echo "Digita il nome dello script di backup che vuoi ripristinare"
       read script
       cp $HOME/backup/$script /usr/local/bin/
       echo "Script ripristinato"
       ;;
    5)
       echo "Digita il nome dello script che vuoi aprire"
       read script
       echo "Ora digita il nome del tuo editor di testo predefinito (per esempio nano, gedit, kwrite)"
       read editor
       if [[ $editor == "" ]]
         then
           nano $HOME/script/$script
       exit
       fi
     $editor $HOME/script/$script &
    exit
    ;;
    6)
       echo "Ciao"
       exit
       ;;
    *)
       echo "input non valido"
    esac
    e fin qui tutto ok, ora ecco come sto provando a trasformarlo per passare tutti i comandi a zenity:

    codice:
    #!/bin/bash
    
    scelta=""
    
    function scelta(){
        scelta=$(zenity --width=500 --entry --text "
    SIRM 2.0. Script Install & Remove Manager versione 2.0.3
    Cosa vuoi fare?
    1) Installare uno script (deve essre in $HOME/script/)
    2) Rimouvere uno script
    3) Fare il backup di uno script in $HOME/backup/ 
    4) Ripristinare uno script salvato in $HOME/backup/
    5) Apri uno sript nella cartella $HOME/script/ con un editor di testo
    6) Uscire
    Digita il numero corrispondente all'operazione
    " --title "Sirm2 GUI"
    )
        return
    }
    
    function installa(){
       installa=$(zenity --width=500 --entry --text "
    Digita il nome dello script da installare 
    " --title "Scelta script")
    
       return
    }
    
    
    scelta
    
    if [[ $(echo $scelta | grep "1") ]]; 
    then
    installa ;
    fi
    il problema è che non mi viene in mente come far fare a zenity gli altri comandi dopo la scelta del nome dello script da installare. Qualcuno mi sa aiutare?
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  2. #2
    up

    nel frattempo ho modificato lo script ma non è ancora funzionale:

    codice:
    #!/bin/bash
    
    scelta=""
    
    function scelta(){
        scelta=$(zenity --width=500 --entry --text "
    SIRM 2.0. Script Install & Remove Manager versione 2.0.3
    Cosa vuoi fare?
    1) Installare uno script (deve essre in $HOME/script/)
    2) Rimouvere uno script
    3) Fare il backup di uno script in $HOME/backup/ 
    4) Ripristinare uno script salvato in $HOME/backup/
    5) Apri uno sript nella cartella $HOME/script/ con un editor di testo
    6) Uscire
    Digita il numero corrispondente all'operazione
    " --title "Sirm2 GUI"
    )
        return
    }
    
    function nomescript(){
    nomescript=$(zenity --width=500 --entry --text "Digita il nome dello script da installare" --title "Scelta script")
    return
    }
    
    scelta
    nomescript
    
    if [[ $(echo $scelta | grep "1") ]]; 
    then
          chmod +x $HOME/script/$(echo $nomesript)
          cp $HOME/script/$(echo $nomesript) /usr/local/bin/
          echo "Installati gli script sul tuo computer"
          echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)"  ;
    fi
    Who help me?
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  3. #3
    Evvai!! Ho cpaito più o meno come fare, ecco un primo abbozzo, ha solo una funzione, la prima, e potrei migliorare l'impostazione delle finestre, però come idea per la programmazione va più che bene. Quando ho finito faccio il .deb ^^

    codice:
    #!/bin/bash
    
    #Crea le cartelle necessarie allo script se non esistono (thanks to vortex87)
    [ -d "$HOME/backup" ] || mkdir $HOME/backup
    [ -d "$HOME/script" ] || mkdir $HOME/script
    
    # Verifica che l'utente abbia permessi di root
    
    ROOT_UID=0 
    
    if [ "$UID" != "$ROOT_UID" ]
     then
     echo "Devi essere root per eseguire questo script."
     exit
    fi  
    
    #Programma
    scelta=""
    nomescript=""
    installa=""
    
    function scelta(){
        scelta=$(zenity --width=500 --entry --text "
    SIRM 2.0. Script Install & Remove Manager versione 2.0.3
    Cosa vuoi fare?
    1) Installare uno script (deve essre in $HOME/script/)
    2) Rimouvere uno script
    3) Fare il backup di uno script in $HOME/backup/ 
    4) Ripristinare uno script salvato in $HOME/backup/
    5) Apri uno sript nella cartella $HOME/script/ con un editor di testo
    6) Uscire
    Digita il numero corrispondente all'operazione
    " --title "Sirm2 GUI"
    )
        return
    }
    
    function nomescript(){
    nomescript=$(zenity --width=500 --entry --text "Scegli lo script che vuoi installare" --title "Scelta script")
    return
    }
    
    function installa(){
    installa=$(zenity --width=500 --info --no-wrap --text "Sto installando lo script" --title "Installazione in corso")
    return
    } 
    
    function installati(){
    installati=$(zenity --width=500 --info --no-wrap --text "Installati gli script sul tuo computer
    Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)" --title "Installazione completata")
    return
    }
    
    scelta
    if [ $(echo $scelta | grep "1") ]
    then
    nomescript
    installa
          chmod +x $HOME/script/$nomescript
          cp $nomescript /usr/local/bin/
    installati
    fi
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.