Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107

    [BASH] Come si programma in bash?

    Ragazzi aiuto!!! Vi prego!! Devo fare questo esercizio e non so come fare!

    Si realizzi lo script bash quode che accetta come parametri di ingresso un tag, un valore intero N e una stringa word e restituisce in uscita la codifica della stringa mediante giustapposizione, carattere per carattere della stringa stessa con una parola random di lunghezza N, generata automaticamente dal sistema. Pertanto, la sintassi generale del comando è la seguente

    quode [ -l | -u | -d ] [N] word

    dove le lettere l, u e d indicano che la parola random è ottenuta dalle lettere minuscole, maiuscole e cifre decimali rispettivamente. Si implementi il comando in modo che, in mancanza del primo e/o secondo parametro vengano utilizzati i valori di default l e 5. La stringa di uscita deve avere lunghezza doppia della stringa iniziale e i suoi caratteri in posizione dispari sono gli stessi della stringa iniziale mentre quelli in posizione pari derivano dalla parola random, eventualmente ripetuta, se necessario.

    Qualcuno saprebbe spiegarmi almeno le basi? Grazie!
    Giovanni

  2. #2
    La difficoltà di questo esercizio non sta nell'esercizio in sè ma nel comprendere quello che effettivamente chiede.
    Tipicamente da scuola italiana, in pratica...

    PS - ma da quand'è che a scuola si utilizza bash?
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    Non è scuola ma università! E comunque, almeno sapreste dirmi se devo fare in modo che i parametri vengano passati tra le [ ] oppure no? ho provato a scrivere un po' di codice e sono riuscito a capire come si passano i parametri all'avvio del programma ma non so se si passano tra quadre e separati da pipe ( | ) oppure se si passano uno dopo l'altro separati da spazi... o quantomeno, secondo voi l'esercizio quale dei due modi richiede? grazie mille!
    Giovanni

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da diablo85
    E comunque, almeno sapreste dirmi se devo fare in modo che i parametri vengano passati tra le [ ] oppure no? ho provato a scrivere un po' di codice e sono riuscito a capire come si passano i parametri all'avvio del programma ma non so se si passano tra quadre e separati da pipe ( | ) oppure se si passano uno dopo l'altro separati da spazi... o quantomeno, secondo voi l'esercizio quale dei due modi richiede?
    Ma noooo. Quella che hai riportato sopra è la sintassi del comando.

    quode [ -l | -u | -d ] [N] word

    vuol dire che puoi passare, opzionalmente (essendo presenti le [ ] ) un -l oppure un -u oppure un -d e poi puoi passare, sempre opzionalmente, un numero N e poi in ogni caso una stringa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    Ah quindi scrivo "quode -u 10 ciao" e mi restituisce una stringa in maiuscolo lunga 10 random da inserire all'interno del ciao?
    E se invece scrivo "quode ciao" mi mette automaticamente -l e N=5?
    PS ma quando la richiamo devo scrivere -l oppure solo l?

    Scusate ma sono un po' smarrito...
    Giovanni

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da diablo85
    Ah quindi scrivo "quode -u 10 ciao" e mi restituisce una stringa in maiuscolo lunga 10 random da inserire all'interno del ciao?
    Esatto.

    Originariamente inviato da diablo85
    E se invece scrivo "quode ciao" mi mette automaticamente -l e N=5?
    Esatto, l'hai detto prima che ci possono essere dei valori di default.

    Originariamente inviato da diablo85
    PS ma quando la richiamo devo scrivere -l oppure solo l?
    Beh, qui dipende da come si vuole fare o è stato chiesto di fare. In genere le opzioni si passano con -qualcosa o --qualcosa. In DOS/Windows molti comandi, tipo DIR, usano /qualcosa.
    Devi poi testare tu se è uguale a quanto ci si aspetta. Non cambierebbe molto se ti fosse stata richiesta la sintassi:

    quode [ low | upp | dig ] [N] word
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    ok! perfetto! grazie mille! ora mi rimane solo da capire come si genera una parola random e come la si trasforma in maiuscolo o minuscolo!!! Qualcuno saprebbe aiutarmi? Non ho proprio alba di come si faccia!!!

    PS Grazie mille forum!!!
    Giovanni

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da diablo85
    ora mi rimane solo da capire come si genera una parola random e come la si trasforma in maiuscolo o minuscolo!!!
    Innanzitutto la tua "bibbia" deve essere: man bash

    Ma quello che vorrei capire (perché non l'ho capito ....) è cosa intendi quando dici: "restituisce in uscita la codifica della stringa mediante giustapposizione, carattere per carattere della stringa stessa con una parola random di lunghezza N, generata automaticamente dal sistema.".

    Puoi fare un esempio pratico???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    eh la richiesta dell'esercizio è questa... da quanto ho capito sembra che lo script debba restituire la parola word "modificata" ossia <<i suoi caratteri in posizione dispari devono essere gli stessi della stringa iniziale mentre quelli in posizione pari derivano dalla parola random, eventualmente ripetuta, se necessario.>> cioè se word è "ciao" e la parola random è "XRTW" deve restituire "cXiRaToW"... o almeno credo!
    Ma come faccio a generare una parola random e a metterla in minuscolo o maiuscolo (o eventualmente in numerico)? e soprattutto come faccio x impostare questo comando come "predefinito"? Ossia richiamarlo in bash da qualsiasi posizionescrivendo semplicemente "quode +parametri" come se fosse una semplice istruzione tipo ls? con un alias? Grazie Mille!
    Giovanni

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da diablo85
    eh la richiesta dell'esercizio è questa... da quanto ho capito sembra che lo script debba restituire la parola word "modificata" ossia <<i suoi caratteri in posizione dispari devono essere gli stessi della stringa iniziale mentre quelli in posizione pari derivano dalla parola random, eventualmente ripetuta, se necessario.>> cioè se word è "ciao" e la parola random è "XRTW" deve restituire "cXiRaToW"... o almeno credo!
    Ok ... l'importante è che sia chiaro per te. Per me va bene ... lo prendo per buono.

    Originariamente inviato da diablo85
    Ma come faccio a generare una parola random e a metterla in minuscolo o maiuscolo (o eventualmente in numerico)?
    La bash ha una variabile speciale $RANDOM. Quando la leggi, essa contiene un numero casuale.

    Quindi potresti fare così: in base alla richiesta -l/-u/-d metti in una stringa la sequenza di caratteri che compone il tuo "alfabeto", quindi "a...z" o "A...Z" o "0...9".

    Con $RANDOM prendi N valori casuali. Per ogni valore lo riduci in un range compatibile con gli indici della stringa di prima. Per farlo devi usare una "arithmetic expansion" (vedi relativa sezione in man bash).
    Poi fai una "substring expansion" (vedi sezione Parameter Expansion di man bash) per ottenere appunto in modo casuale uno dei caretteri della sequenza.

    A quel punto è fatta. Accodi in una stringa prima il carattere originale e poi quello casuale, ecc...

    Originariamente inviato da diablo85
    e soprattutto come faccio x impostare questo comando come "predefinito"? Ossia richiamarlo in bash da qualsiasi posizionescrivendo semplicemente "quode +parametri" come se fosse una semplice istruzione tipo ls? con un alias?
    Si può fare certamente con un alias ma ... è meglio se:
    - Metti lo script in una directory che sta in PATH
    oppure
    - Metti in PATH la directory che contiene lo script
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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.