Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Creare script

  1. #1

    Aiuto Creare script

    Per favore qualcuno mi può aiutare, con Linux sono una frana (è da poco che mi sono avvicinato a questo mondo) ma con il DOS me la cavo abbastanza.

    Ho una cartella che si chiama: Catalogo Giocattolo e sottocartelle A01 A02 A03 ecc.....
    All'interno di ogni cartella ho un sacco di immagini es:
    nella cartella A01 ci sono file A01001.jpg A01002.jpg ecc.....
    nella cartella A02 ci sono file A02350.jpg A02365.jpg ecc.....

    Ho creato questo script con nome "cancella" ma quando lo eseguo non funziona:
    PS: questi sono solo tre file ma in realtà sono quasi 2000, lo script lo preparo in excel prendendo i dati dall'AS400 concatenando il tutto.

    #!/bin/sh
    rm 'Catalogo Giocattolo/A01/A01001.jpg'
    rm 'Catalogo Giocattolo/A01/A01002.jpg'
    rm 'Catalogo Giocattolo/A02/A02350.jpg'

    lo eseguo con: bash -i cancella

    Se eseguo manualmente rm 'Catalogo Giocattolo/A01/A01001.jpg' il file viene cancellato.

    Grazie

  2. #2
    Gli script non hanno bisogno di "bash ..." per essere eseguiti. Ciò significa che puoi impostare i permessi di esecuzione a "cancella" per poi richiamarlo come un normale programma:

    codice:
    chmod o+x cancella
    ./cancella
    finezza che comunque non è il tuo problema. Il tuo script non ha errori: l'ho provato in locale e funziona (richiamandolo come sopra descritto). In realtà non so nemmeno perché hai usato l'opzione -i di bash...

    L'unica altra cosa che mi viene in mente è che richiami rm da una directory e esegui cancella da un'altra, nel qual caso è logico che non funzioni dato che i percorsi specificati sono relativi.

  3. #3
    Ho fatto come dici, ma non funziona, mi dice permesso negato.

    Se lancio il comando rm 'Catalogo Giocattolo/A01/A01001.jpg' a mano indicando la partizione e dovunque mi trovo funziona.

  4. #4
    Originariamente inviato da FrancoLocatelli
    Ho fatto come dici, ma non funziona, mi dice permesso negato.
    Quando ti dice "Permesso negato"? Dopo 'chmod o+x cancella'? Dopo './cancella'?

  5. #5

    Re: Aiuto Creare script

    Originariamente inviato da FrancoLocatelli
    Per favore qualcuno mi può aiutare, con Linux sono una frana (è da poco che mi sono avvicinato a questo mondo) ma con il DOS me la cavo abbastanza.

    Ho una cartella che si chiama: Catalogo Giocattolo e sottocartelle A01 A02 A03 ecc.....
    All'interno di ogni cartella ho un sacco di immagini es:
    nella cartella A01 ci sono file A01001.jpg A01002.jpg ecc.....
    nella cartella A02 ci sono file A02350.jpg A02365.jpg ecc.....

    Ho creato questo script con nome "cancella" ma quando lo eseguo non funziona:
    PS: questi sono solo tre file ma in realtà sono quasi 2000, lo script lo preparo in excel prendendo i dati dall'AS400 concatenando il tutto.

    #!/bin/sh
    rm 'Catalogo Giocattolo/A01/A01001.jpg'
    rm 'Catalogo Giocattolo/A01/A01002.jpg'
    rm 'Catalogo Giocattolo/A02/A02350.jpg'

    lo eseguo con: bash -i cancella

    Se eseguo manualmente rm 'Catalogo Giocattolo/A01/A01001.jpg' il file viene cancellato.

    Grazie
    mi sembra fatto abbastanza male come script. Se per esempio la cartella si trova nella home, prova con

    #!/bin/bash
    rm '$HOME/Catalogo Giocattolo/A*/*.jpg'

    Lo salvi in una cartella chiamata script nella tua home (giusto per comodità), poi ti sposti nella cartella con
    cd script
    (attento a maiuscole e minuscole), e digiti con i privilegi di root (che distribuzione usi?)
    chmod +x nomescript (per esempio cancella)
    poi, con i privilegi di root
    cp cancella /usr/local/bin
    Così puoi usare lo script semplicemente digitando cancella. Prova se va, non so se va bene così o va fatto in modo un po più complesso, però come idea ci dovrebbe essere.
    "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!"

  6. #6
    PS: per gestire l'installazione, la rimozione, il backup e il ripristino degli script, ho creato questo:

    codice:
    #!/bin/bash
    
    ###############################################
    #                                             #
    # SIRM2 Script Install & Remove Manager 2.0.3 #
    #                                             #
    ###############################################
    
    #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 ;;
    esac
    shift
    done
    
    #Qui sotto sirm e le sue utilità
    
    echo "SIRM 2.0. Script Install & Remove Manager versione 2.0.2"
    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) Uscire"
    echo "Digita il numero corrispondente all'operazione"
    read scelta
    case $scelta in
    1)
       echo "Digita il nome dello script da installare"
       read elencosript
          sudo chmod +x $HOME/script/$elencosript
          sudo 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
          sudo 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
       sudo cp $HOME/backup/$script /usr/local/bin/
       echo "Script ripristinato"
       ;;
    5)
       echo "Ciao"
       exit
       ;;
    *)
       echo "input non valido"
    esac
    No so se è l'ultima "versione" con le correzioni, ma dovrebbe comunque funzionare, in caso correggilo tu. Per installarlo basta che lo salvi sempre nella stessa cartella script, ti ci sposti con
    cd script
    Digiti con i privilegi di root
    chmod +x sirm2
    e poi (sempre coi privilegi di root)
    cp sirm2 /usr/local/bin
    E poi basta che digiti sirm2 per poter gestire gli script presenti nella cartella script nella tua home, c'ho messo pure un menu carino. Unica accortezza, crea le cartelle script e backup (tutto minuscolo) nella tua home, il resto lo fa tutto lo script.

    "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!"

  7. #7
    Grazie molto per l'aiuto funziona.

    Ciao

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.