Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    script bash, errore sintassi

    Sto sistemando il solito script, ecco la parte che mi interessa:
    codice:
     echo "Digita il nome dello script da installare"
       read elencosript
          chmod +x $HOME/script/$elencosript
          if [ -f "/usr/bin/$elencoscript" ] 
    	then 
    		echo "Lo script esiste già, sei sicuro di volerlo sovrascrivere? (s/N)"
    			read risposta
    				if [ $risposta == s ]
    					then cp $HOME/script/$elencosript /usr/bin/
    					echo "Installati gli script sul tuo computer"
    					echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)" 
    				elif [ $risposta == n ]
    					then
    					exit 1
    				fi
    	else
    		cp $HOME/script/$elencosript /usr/bin/
    		echo "Installati gli script sul tuo computer"
    		echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)" 
    	fi
       ;;
    Lo scopo è quello di copiare lo script in /usr/bin, ma, se esiste già un file con quel nome, chiedere prima conferma all'utente. Però c'è qualcosa di errato, dato che lo script viene installato comunque, senza chiedere nulla
    "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
    mi sto avvicinando alla soluzione

    codice:
    echo "Digita il nome dello script da installare"
       read elencosript
          chmod +x $HOME/script/$elencosript
          [ -f "/usr/bin/$elencoscript" ] | echo "Lo script esiste già, sei sicuro di volerlo sovrascrivere? (s/N)";
    			read risposta;
    				if [ $risposta == s ];
    					then cp $HOME/script/$elencosript /usr/bin/;
    					echo "Installati gli script sul tuo computer";
    					echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)"; 
    				elif [ $risposta == n ];
    					then
    					exit 1;
    				fi;
    	
    #		cp $HOME/script/$elencosript /usr/bin/
    #		echo "Installati gli script sul tuo computer"
    #		echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)" 
    #	fi
    La prima parte ora funziona, non so come aggiungere la seconda parte, devo rimettere il [ -f "/usr/bin/$elencoscript" ] solo usando il doppio pipe dopo? tipo
    codice:
    [ -f "/usr/bin/$elencoscript" ] || cp $HOME/script/$elencosript /usr/bin/;
    echo "Installati gli script sul tuo computer"
    echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)"
    ????
    "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
    Originariamente inviato da psykopear
    mi sto avvicinando alla soluzione

    codice:
    echo "Digita il nome dello script da installare"
       read elencosript
          chmod +x $HOME/script/$elencosript
          [ -f "/usr/bin/$elencoscript" ] | echo "Lo script esiste già, sei sicuro di volerlo sovrascrivere? (s/N)";
    			read risposta;
    				if [ $risposta == s ];
    					then cp $HOME/script/$elencosript /usr/bin/;
    					echo "Installati gli script sul tuo computer";
    					echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)"; 
    				elif [ $risposta == n ];
    					then
    					exit 1;
    				fi;
    	
    #		cp $HOME/script/$elencosript /usr/bin/
    #		echo "Installati gli script sul tuo computer"
    #		echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)" 
    #	fi
    La prima parte ora funziona, non so come aggiungere la seconda parte, devo rimettere il [ -f "/usr/bin/$elencoscript" ] solo usando il doppio pipe dopo? tipo
    codice:
    [ -f "/usr/bin/$elencoscript" ] || cp $HOME/script/$elencosript /usr/bin/;
    echo "Installati gli script sul tuo computer"
    echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)"
    ????
    come temevo così non va, mi chiede sempre se voglio sovrascrivere il file, anche se questo non esiste...
    "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!"

  4. #4
    ho risolto togliendo il test e rimettendo la cartella di utilizzo /usr/local/bin per evitare casini.
    "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!"

  5. #5

    Re: script bash, errore sintassi

    A volte scrivi "$elencosript" e altre "$elencoscript"

  6. #6

    Re: Re: script bash, errore sintassi

    Originariamente inviato da vortex87
    A volte scrivi "$elencosript" e altre "$elencoscript"
    caspita ahaha, sti errori del cavolo

    edit: il bello è che in tutto il resto dello script ho sempre scritto "elencosript" (non so come ho fatto a sbagliare così tanto volte), e invece li ho scritto corretto... Vabè, comunque rimango come sono ora
    "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.